解决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. 013-HQL中级3-Hive四种数据导入方式介绍

    Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...

  2. C的指针疑惑:C和指针13(高级指针话题)上

    int *f(); f为一个函数,返回值类型是一个指向整形的指针. int (*f)(); 两对括号,第二对括号是函数调用操作符,但第一对括号只起到聚组的作用. f为一个函数指针,它所指向的函数返回一 ...

  3. windows批处理初学贴出一些命令

    在cmd窗口中复制时,右键选标记,然后再选择此时选择区域就变白了.然后要么直接拖到要粘贴的地方,要么直接按回车存到剪贴板里. 1.循环导入文件夹下面的文件到数据库中 cd /d D:/Program ...

  4. @FindBy、@FindBys、@FindAll的区别

    原文地址http://blog.csdn.net/tea_wu/article/details/21080789 selenium-webdriver中获取页面元素的方式有很多,使用注解获取页面元素是 ...

  5. Python(socket编程——1、理论)

    Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机 ...

  6. 一步一步学EF系列二【Fluent API的方式来处理实体与数据表之间的映射关系】

    EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...

  7. hihocoder1479 三等分

    地址:http://hihocoder.com/problemset/problem/1479 题目: 三等分 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近 ...

  8. 【android内存泄露】 WebView篇

    在咱的博客园app里,新闻的内容使用WebView展示的.在测试中,咱重复进入.退出某个新闻10多次,观察到 Objects一直在不断增长,反复触发GC,但是一直回收不了,占用的内存越来越高,于是警觉 ...

  9. android整理的一些基础知识

    本篇文章内容大部分是来源于本人实际开发中的心得总结,不是非常全面,咱才疏学浅,如果有错误的地方恳请各位指出哦~ android四大组件 四大组件包括:Activity(活动),Service(服务), ...

  10. Windows 配置安卓环境变量

    变量名:JAVA_HOME 变量值:JDK 路径 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar      // ...