phalcon: 解决php7/phalcon3.2以上版本,不支持oracle数据库的方法
解决php7/phalcon3.2以上版本,不支持oracle数据库的方法
phalcon3.2(3.0以上)版本不支持oracle的方法。
https://github.com/phalcon/incubator
参考以上路径的方法:
我的phalcon是3.2.4
1.在项目路径根目录下,我的:
在根目录下,新建:composer.json,
我的phalcon是3.2.4,那么对应的版本是3.2
- {
- "require": {
- "phalcon/incubator": "^3.2"
- }
- }
2.然后执行安装
- curl -s http://getcomposer.org/installer | php
3.安装:
- php composer.phar install
4.在根木目录下,新建一个文件,来验证:
- $loader = new Phalcon\Loader();
- $loader->registerNamespaces([
- 'Phalcon' => '/var/www/html/wxsdairpro/vendor/phalcon/incubator/Library/Phalcon/'
- ]);
- $loader->register();
- $database=array(
- 'adapter' => 'Oracle',
- 'host' => 'xxxxx',
- 'username' => 'xxxxx',
- 'password' => 'xxxxx',
- 'port' => '1521',
- 'charset' => 'AL32UTF8',
- 'service_name' => 'wweborc'
- );
- extract($database);
- // vendor 自动加载
- spl_autoload_register(function ($class) {
- if ($class) {
- $file = str_replace('\\', '/', $class);
- $file .= '.php';
- if (!file_exists($file)) {
- $classParts = explode("/", $file);
- $rebuildClass = '';
- foreach ($classParts as $part) {
- $part = ucfirst($part);
- $rebuildClass .= $part . "/";
- }
- $rebuildClass = rtrim($rebuildClass, "/");
- $file = 'vendor/phalcon/incubator/Library/' . $rebuildClass;
- //$file = "vendor/phalcon/incubator/Library/Phalcon/Db/Dialect/Oracle.php";
- include_once $file;
- }
- }
- });
- $db = new Phalcon\Db\Adapter\Pdo\Oracle(array(
- 'adapter' => "{$adapter}",
- 'username' => "{$username}",
- 'password' => "{$password}",
- 'dbname' => "//{$host}:{$port}/{$service_name}",
- 'charset' => "{$charset}"
- ));
- $data = $db->fetchAll( " SELECT * FROM WX_USER WHERE rownum<10", Phalcon\Db::FETCH_ASSOC);
- var_dump($data);
这里需要说一下,这里的包文件,涉及到oracle的类,命名空间,有大小写bug,所以需要转换一下:
//记住这里,因为这个包中的oracle命名的大小写根phalcon中的oracle大小写有出入,所以需要转换一下
- spl_autoload_register(function ($class) {
- if ($class) {
- $file = str_replace('\\', '/', $class);
- $file .= '.php';
- if (!file_exists($file)) {
- $classParts = explode("/", $file);
- $rebuildClass = '';
- foreach ($classParts as $part) {
- //记住这里,因为这个包中的oracle命名的大小写根phalcon中的oracle大小写有出入,所以需要转换一下
- $part = ucfirst($part);
- $rebuildClass .= $part . "/";
- }
- $rebuildClass = rtrim($rebuildClass, "/");
- $file = 'vendor/phalcon/incubator/Library/' . $rebuildClass;
- //$file = "vendor/phalcon/incubator/Library/Phalcon/Db/Dialect/Oracle.php";
- include_once $file;
- }
- }
- });
//记住这里,因为这个包中的oracle命名的大小写根phalcon中的oracle大小写有出入,所以需要转换一下
在入口文件处,修改一下:
- $loader = new Loader();
- $loader->registerDirs(
- array(
- __DIR__ . $config->application->ticketDir,
- __DIR__ . $config->application->wxpayDir,
- __DIR__ . $config->application->controllersDir,
- __DIR__ . $config->application->logicDir,
- __DIR__ . $config->application->modelsDir,
- __DIR__ . $config->application->pluginsDir,
- __DIR__ . $config->application->utilDir,
- )
- );
- // important
- $loader->registerNamespaces([
- 'Phalcon' => __DIR__ .'/../vendor/phalcon/incubator/Library/Phalcon/'
- ]);
- $loader->register();
- // Create a DI
- $di = new FactoryDefault();
- // Setup a base URI so that all generated URIs include the "tutorial" folder
- $di['url'] = function() {
- $url = new Url();
- $url->setBaseUri('/');
- return $url;
- };
- // phalcon 3rd library vendor 自动加载
- spl_autoload_register(function ($class) {
- if ($class) {
- $file = str_replace('\\', '/', $class);
- $file .= '.php';
- if (!file_exists($file)) {
- $classParts = explode("/", $file);
- $rebuildClass = '';
- foreach ($classParts as $part) {
- $part = ucfirst($part);
- $rebuildClass .= $part . "/";
- }
- $rebuildClass = rtrim($rebuildClass, "/");
- $file = __DIR__ . '/../vendor/phalcon/incubator/Library/' . $rebuildClass;
- include_once $file;
- }
- }
- });
下载地址:https://download.csdn.net/download/gzyftk/11472630
phalcon: 解决php7/phalcon3.2以上版本,不支持oracle数据库的方法的更多相关文章
- 低版本浏览器支持HTML5标签的方法
最近刷了一道面试题,是关于低版本浏览器支持HTM5标签的写法,在网上找了一些,都行之有效,但是缺少整体总结,所以在这里总结一下,方便其他人过来阅读. IE低版本需要支持HTML5标签: 方法1.传统引 ...
- 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22
行云管家在线体验: 行云管家[官网]-领先的云计算管理平台-云安全,堡垒机,自动化运维 行云管家新手有礼活动: 行云管家新手有礼,新用户1元即可体验专业版-优惠券 发布日期:2018-11-22 ...
- 解决opacity属性在低版本IE浏览器下失效的方法
以前,一直都以为ie9以下的版本不支持opacity属性.所以就同时使用 opacity和ie独特的filter蒙版.但是有些时候需要一些动态的效果,就比如层的渐渐消失,隐藏,就需要使用动态变化的op ...
- Windows下PHP7/5.6以上版本 如何连接Oracle 12c,并使用PDO
https://blog.csdn.net/houpanqi/article/details/78841928 首先,本篇文章重点分享的是:在Win平台下,如何使用PHP7连接Oracle 12C,所 ...
- 低版本Firefox支持innerText属性兼容方法
FireFox支持innerText属性了,很遗憾是44.0.2版本以下还需要兼容处理. 方法一: innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使 ...
- 解决WebSocket兼容ie浏览器版本问题
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7942323.html 在使用Netty进行WebSocket开发时,测试发现:ie 11系列个别低版本连接W ...
- 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应
转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应 如果pytorch的编译时 ...
- 解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法
解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法 设置fiddler抓手机包后,在手机上访问http://ip:port,出现如下问题: 问题:creation of the ...
- 解决 php7 cli 模式下中文乱码的两中方法
解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...
随机推荐
- 读取xml文件,写入excel
在上一篇 Python写xml文件已经将所有订单写入xml文件,这一篇我们把xml文件中的内容读出来,写入excel文件. 输入xml格式: <?xml version="1.0&qu ...
- python学习笔记(十六)内置函数zip、map、filter的使用
1.zip,就是把两个或者多个list,合并到一起,如果想同时循环2个list的时候,就使用zip.示例如下: l1 = ['a','b','c','e','f','g'] l2 = [,,] l3= ...
- Linux 远程复制
一.将本机文件复制到远程服务器上 #scp /usr/local/kafka_2.11-0.11.0.0/config/server.properties app@172.25.6.11:/haha ...
- Webservice介绍
一. Socket和Http通信协议介绍 1. Socket协议简单介绍 Socket位于传输层,它是对Tcp/ip协议的实现,包含TCP/UDP,它是所有通信协议的基础,如下为Socket通 ...
- PKU 1035 Spell checker(Vector+String应用)
题目大意:原题链接 1输入一个字符串,如果字典中存在该字符串,直接输出,否则; 2.删除,替换,或插入一个字母.如果使得输入字符串==字典中已经有的单词,输出该单词,否则. 3.直接输入下一个字符串, ...
- java并发 —— Lock
java并发 -- Lock 关于java并发中的锁知识,少不了 Lock.本文转载自:Java并发编程:Lock. 从Java 5之后,在java.util.concurrent.locks包下提供 ...
- The 15th UESTC Programming Contest Preliminary M - Minimum C0st cdoj1557
地址:http://acm.uestc.edu.cn/#/problem/show/1557 题目: Minimum C0st Time Limit: 3000/1000MS (Java/Others ...
- Ubuntu安装samba实现文件夹共享
因工作需要,准备在Ubuntu服务器上共享文件夹,从Windows和Mac上都可以访问共享文件. 搜了一下,决定通过samba服务实现.安装过程如下: [step1]安装samba服务 sudo ap ...
- 在Ubuntu中启动./jmeter-server报错Server failed to start: java.rmi.RemoteException: Cannot start. ranxf is a loopback address.解决方法
执行失败错误信息: root@ranxf:/home/ranxf/apache-jmeter-3.1/bin# ./jmeter-server Writing log file to: /home ...
- 【Python】模块
廖雪峰教程笔记. [使用模块有什么好处?] 1.使用模块可以避免函数名和变量名冲突. 2.大大提高了代码的可维护性. [使用模块的注意点] 1.每一个.py文件就是一个模块. 2.每一个包目录下面必须 ...