解决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数据库的方法的更多相关文章

  1. 低版本浏览器支持HTML5标签的方法

    最近刷了一道面试题,是关于低版本浏览器支持HTM5标签的写法,在网上找了一些,都行之有效,但是缺少整体总结,所以在这里总结一下,方便其他人过来阅读. IE低版本需要支持HTML5标签: 方法1.传统引 ...

  2. 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22

    行云管家在线体验: 行云管家[官网]-领先的云计算管理平台-云安全,堡垒机,自动化运维​ 行云管家新手有礼活动: 行云管家新手有礼,新用户1元即可体验专业版-优惠券​ 发布日期:2018-11-22 ...

  3. 解决opacity属性在低版本IE浏览器下失效的方法

    以前,一直都以为ie9以下的版本不支持opacity属性.所以就同时使用 opacity和ie独特的filter蒙版.但是有些时候需要一些动态的效果,就比如层的渐渐消失,隐藏,就需要使用动态变化的op ...

  4. Windows下PHP7/5.6以上版本 如何连接Oracle 12c,并使用PDO

    https://blog.csdn.net/houpanqi/article/details/78841928 首先,本篇文章重点分享的是:在Win平台下,如何使用PHP7连接Oracle 12C,所 ...

  5. 低版本Firefox支持innerText属性兼容方法

    FireFox支持innerText属性了,很遗憾是44.0.2版本以下还需要兼容处理. 方法一: innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使 ...

  6. 解决WebSocket兼容ie浏览器版本问题

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7942323.html 在使用Netty进行WebSocket开发时,测试发现:ie 11系列个别低版本连接W ...

  7. 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应 如果pytorch的编译时 ...

  8. 解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法

    解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法 设置fiddler抓手机包后,在手机上访问http://ip:port,出现如下问题: 问题:creation of the ...

  9. 解决 php7 cli 模式下中文乱码的两中方法

    解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...

随机推荐

  1. python手写bp神经网络实现人脸性别识别1.0

    写在前面:本实验用到的图片均来自google图片,侵删! 实验介绍 用python手写一个简单bp神经网络,实现人脸的性别识别.由于本人的机器配置比较差,所以无法使用网上很红的人脸大数据数据集(如lf ...

  2. [golang note] 流程控制

    流程控制 • 流程控制语句作用 ▪ 选择:根据条件跳转到不同的执行序列. ▪ 循环:根据条件反复执行某个序列. ▪ 跳转:据条件返回到某执行序列. • 流程控制语句类型 ▪ 条件语句:关键字为if.e ...

  3. extern,头文件和ifndif宏

    转自:CSDN->fpmystar 用#include可以包含其他头文件中变量.函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数f(),我只要直接在源文件中包含#incl ...

  4. Java 为什么要使用反射(通俗易懂的举例)

    Java反射最大的好处就是能在运行期间,获得某个类的结构.成员变量,用来实例化. 下列是具体使用场景:假如我们有两个程序员,一个程序员在写程序的时候,需要使用第二个程序员所写的类,但第二个程序员并没完 ...

  5. spark程序设计

    Spark程序设计—创建RDD:从Scala集合构造成RDD parallelize(a, 3) makeRDD(a, 3) 他俩使用方式一样,只不过名字不一样 Spark程序设计—创建RDD:本地文 ...

  6. C++通过HTTP请求Get或Post方式请求Json数据(转)

    原文网址:https://www.cnblogs.com/shike8080/articles/6549339.html #pragma once#include <iostream>#i ...

  7. Centos下给PHP7添加Xhprof性能分析

    什么是 Xhprof?XHProf是facebook 开发的一个测试php性能的扩展,本文记录了在PHP应用中使用XHProf对PHP进行性能优化,查找性能瓶颈的方法. 它报告函数级别的请求次数和各种 ...

  8. 三年半Java后端面试经历

    经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征. 鹅厂 面试职位:go后端开发工程师,接受从Java转语言 都知道鹅厂是cpp的主战场,而以cpp为背景 ...

  9. RocEDU.阅读.写作《苏菲的世界》书摘(二)

    "迷信",多么奇怪的一个名词.如果你信基督教或伊斯兰教,这就叫"信仰",但如果你相信占星术或十三号星期五不吉利,就是迷信.谁有权利说别人相信的东西就是" ...

  10. cygwin下烧写文件到sd卡中

    在cygwin下将firmware_sdcard.bin写入到sd卡中(cygwin需要以管理员身份启动) 1查看sd分区情况 cat /proc/partitions  (为了找到sd卡的标记) 2 ...