标签归档:CodeIgniter

CodeIgniter3

 

TL;DR

CodeIgniter3是一个相当轻量、简便的并且上手难度低的PHP应用开发框架。在CodeIgnitor2时代曾经接触并开发了一些项目。目前最新版本是3.1.5。优点个人认为有:

  • 轻量
  • 对MySQL查询有较为友好的代码编写方式
  • 功能扩展较为简便
  • 可以支持较低版本的PHP(5.4.8+)
  • 可以不使用模板引擎

同时,个人也认为以下功能还可以有所变化:

  • 内置日志功能不够强大
  • 内置读写分离
  • RESTful API开发支持

文章的剩余内容将会针对以上的各个方面详细说明。

继续阅读

CI连接Oracle 11G数据库

CI连接Oracle 11G数据库

CI框架算是个人最喜欢的PHP框架之一,易用性上没的说,还有完备的中文文档,不过大多数时候是搭配MySQL一起使用。

不过最近接触的一个项目使用的是Oracle 11G数据库,开发前给大家搭环境的时候发现连接有一些问题,主要来说是安装配置上的一些问题。

环境

  • CodeIgniter 2.2.0
  • Oracle 11G R2
  • CentOS 6.4
  • PHP 5.2

扩展安装

首先CI本身是能支持Oracle数据库的,在DB Driver的代码中可以明确地看到,下面需要的就是安装oci8扩展了。

oci8扩展在安装上和其他的PHP扩展没有太多的区别,稍微有点区别的是需要下载安装一个Instant Client,Windows下的下载安装倒也还算顺利,然后Linux下的下载真是让人哭笑不得了,因为页面上的js错误,点击我同意按钮之后是不会出现熟悉的下载功能的,即各个链接仍然连接到本页,不过没有关系,看了下页面源码,还是找出了rpm包的实际下载链接(当然这个也是要注册Oracle的账户才能下载的)。

http://download.oracle.com/otn/linux/instantclient/112010/oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm

同时还需要安装devel包否则在编译扩展时会出现找不到头文件的情况。

http://download.oracle.com/otn/linux/instantclient/112010/oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm

之后就是常规的phpize && configure && make && make install了。

多说一句,如果通过rpm包安装了sqlplus之后不能使用,出现诸如:

sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

的问题时,可以考虑通过:

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH

的方式来解决。

CI配置

下面来看在autoload配置文件中已经配置了autoload database配置的情况下CI的配置。

网上对于CI的配置主要区别在hostname这一个项目,有写成tnsnames.ora样式的,这个自己没实验成功,最后读了一下CI连接部分的代码,确定了连接中hostname配置应该是:

//数据库IP:数据库端口/数据库名称

最终连接成功的配置如下:

$db['default']['hostname'] = "//192.168.1.200:1521/db200";
$db['default']['username'] = 'learn';
$db['default']['password'] = '123456';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'oci8';

db200是dbca安装数据库时指定的名称。

环境搭好之后开发自然是要开始了。

以上。