TL;DR
CodeIgniter3是一个相当轻量、简便的并且上手难度低的PHP应用开发框架。在CodeIgnitor2时代曾经接触并开发了一些项目。目前最新版本是3.1.5
。优点个人认为有:
- 轻量
- 对MySQL查询有较为友好的代码编写方式
- 功能扩展较为简便
- 可以支持较低版本的PHP(5.4.8+)
- 可以不使用模板引擎
同时,个人也认为以下功能还可以有所变化:
- 内置日志功能不够强大
- 内置读写分离
- RESTful API开发支持
文章的剩余内容将会针对以上的各个方面详细说明。
CodeIgniter3是一个相当轻量、简便的并且上手难度低的PHP应用开发框架。在CodeIgnitor2时代曾经接触并开发了一些项目。目前最新版本是3.1.5
。优点个人认为有:
同时,个人也认为以下功能还可以有所变化:
文章的剩余内容将会针对以上的各个方面详细说明。
CI框架算是个人最喜欢的PHP框架之一,易用性上没的说,还有完备的中文文档,不过大多数时候是搭配MySQL一起使用。
不过最近接触的一个项目使用的是Oracle 11G数据库,开发前给大家搭环境的时候发现连接有一些问题,主要来说是安装配置上的一些问题。
首先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
的方式来解决。
下面来看在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安装数据库时指定的名称。
环境搭好之后开发自然是要开始了。
以上。