colaphp - Tutorial_ZH_CN.wiki
安装
下载ColaPHP,解压缩,将ColaPHP目录复制到Apache htdocs目录中。
访问:http://127.0.0.1/ColaPHP/demo/index.php
显示”Index@1245405399”(数字可能稍有不同,为当前时间戳)则表示安装成功,如果有问题的话,可能是路径引用的问题,直接修改即可。
说明
ColaPHP还在不断开发中,存在一定的不稳定性,最好的情况是阅读源代码,代码面前没有任何的秘密,ColaPHP会尽量让源代码可读,这也是我们的宗旨。
配置文件
从0.3alpha开始,ColaPHP支持统一的配置文件(比如demo中的config.inc.php),可以通过$cola->boot(配置文件或者配置信息)来加载配置,具体的内容可以参见config.inc.php
URL定义
ColaPHP被设计成支持PHP原生的URL REWRITE,从0.4alpha开始,除了支持基于正则的URL REWRITE,ColaPHP还默认支持动态URL匹配:比如请求:
http://127.0.0.1/ColaPHP/demo/index.php/foo/bar/id/9527
将会分发到FooController中的barAction,并且可以在Controller中通过$this->getVar('id')
或者$this->request->param('id')
来获得id的值。
另外,ColaPHP的URL规则定义如下:
1 | $urls = array( |
数组的键值为正则表达式,值为一数组,系统会找到匹配的规则,然后引入定义好的文件,调用定义好的类以及方法,如果有参数的话,还还可以匹配出对应的参数,参数支持默认值。
比如:http://127.0.0.1/ColaPHP/demo/index.php/view/3306
,系统会提取'view/3306'
去匹配定义好的规则,发现与'/^view\/?(\d+)?$/'
规则匹配上了,然后系统会引入controllers/IndexController.php
文件,调用IndexController
类的viewAction
方法,并将匹配出来的3306传进去,如果是访问:http://127.0.0.1/ColaPHP/demo/index.php/view
,也能与'/^view\/?(\d+)?$/'
匹配上,没有匹配到参数,将默认参数9527传过去。
更多的例子参考DEMO中的config.inc.php,urls配置信息通过$cola->config('_urls', $urls);
配置到Cola实例中去。
Demo中还有一个例子演示如果跳过Cola_Router,可以做到智能匹配,可以阅读一下http://code.google.com/p/colaphp/source/browse/trunk/demo/norouter.php
你就会更加了解ColaPHP的调度过程了.
Database使用
ColaPHP的Database设计采用工厂模式,暂时只支持Mysql服务器(其他数据库逐步完善),支持Mysql、Mysqli、Pdo_Mysql三种扩展,从0.4alpha开始,ColaPHP支持MySQL主从模式,典型的Mysql配置信息如下:
1 | $dbConfig = array( |
指定适配器类型(目前支持Mysql、Mysqli、Pdo_Mysql三种),params中指定连接数据库的配置信息。所有配置信息通过$cola->config('_db', $dbConfig);
配置到Cola实例中去。
Database的一些方法和市面上的Mysql类很相似,可以阅读一下代码获得(我会尽快补充详细,见谅。)
MVC
整个MVC的设计都是”贫血”的,只提供一些常用的,最简单的功能,目的是不想改变用户已有的编程方式,这样原来你怎么写MVC,现在还可以那么写。
Model的设计是为了便于数据层的开发,包括自动连接数据库服务器(单例模式,不用担心产生多个连接)、便宜的CRUD操作,可以参看Cola/Model.php文件。
一般情况下只有一个Mysql实例,如果需要多Mysql数据库、Mysql主从服务器,你可以重载db()函数来实现,如果是分表的话,可以通过重载table()来实现。
Controller主要完成一些逻辑操作,以及和显示层(View)的交互。
Cola_View是原生的PHP模板配置信息如下:
1 | $viewConfig = array( |
从0.4alpha开始,移除了对Smarty的绑定,主要是有点过于封装,实际意义不大,如果想用Smarty,可以直接在Controller中用。