解决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. 360UI 界面框架 即QUI框架与EXT比较

    EXTJS框架是非常全面和成熟的,这是因为它发展的年头久远,并且有全世界的EXTJS爱好者为其出谋献策,它的组件库尤其是DataGrid组件无人能出其右.我在最初也考虑过使用EXTJS来做项目,学习了 ...

  2. 如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话

    今天我们来实现情景对话.这是一个重要的功能,没有它,游戏将变得索然无味.所以我们不得不来完成它. 但是要知道,使用对话可不是一件简单的事,因为它内部的东西很多,比如说人物头像,人物名称,对话内容... ...

  3. Spark源码分析之Sort-Based Shuffle读写流程

    一 .概述 我们知道Spark Shuffle机制总共有三种: 1.未优化的Hash Shuffle:每一个ShuffleMapTask都会为每一个ReducerTask创建一个单独的文件,总的文件数 ...

  4. kettle添加hadoop cluster时报错Caused by: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: hadoop:password@node56:9000

    完整报错是: Caused by: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: ...

  5. PHP 基础篇 - PHP 错误级别详解

    一.前言 最近经常看到工作 2 年左右的童鞋写的代码也会出现以静态方法的形式调用非静态方法,这是个 Deprecated 级别的语法错误,代码里不应该出现的.对方很郁闷,说:为什么我的环境可以正常运行 ...

  6. C语言字符串/数组去重

    输入: hello 输出: helo 第一种实现: 不新开数组, 也就是原地去重. #include <stdio.h> #include <string.h> void re ...

  7. PAT 1039 Course List for Student[难]

    1039 Course List for Student (25 分) Zhejiang University has 40000 students and provides 2500 courses ...

  8. JDB调试代码 20165324 何春江

    Java书本程序调试: 课上程序调试

  9. appium 底层原理

    appium的log详细分析http://blog.csdn.net/jffhy2017/article/details/69372064----------------------很多appium架 ...

  10. docker——端口映射与容器互联

    在生产环境中,单个服务往往是独立的,但是服务与服务之间往往是相互依赖的,这样对于容器来说,容器之间就需要相互访问.除了网络访问之外,docker还提供了另外两种方式来满足服务的访问. 一:允许映射容器 ...