|
Tutorial_ZH_CN
安装下载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规则定义如下: $urls = array(
'/^$/' => array(
'file' => 'controllers/IndexController.php',
'controller' => 'IndexController',
'action' => 'indexAction'
),
'/^test$/' => array(
'controller' => 'controllers/IndexController.php',
'class' => 'IndexController',
'action' => 'testAction'
),
'/^view\/?(\d+)?$/' => array(
'file' => 'controllers/IndexController.php',
'controller' => 'IndexController',
'action' => 'viewAction',
'maps' => array(
1 => 'id'
),
'defaults' => array(
'id' => 9527
)
)
);数组的键值为正则表达式,值为一数组,系统会找到匹配的规则,然后引入定义好的文件,调用定义好的类以及方法,如果有参数的话,还还可以匹配出对应的参数,参数支持默认值。 比如: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配置信息如下: $dbConfig = array(
'adapter' => 'Mysql',
'params' => array(
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'root',
'password' => '',
'database' => 'test',
'charset' => 'utf8',
'persitent' => true
)
'master' => array(), // 主服务器配置信息,键值和params一致
'slave' => array(), // 多个从服务器配置信息,相当于多个params
'masterslave' => false // 是否开启主从模式
);指定适配器类型(目前支持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模板配置信息如下: $viewConfig = array(
'basePath' => '/path/to/view/home' // 模版文件根路径
);从0.4alpha开始,移除了对Smarty的绑定,主要是有点过于封装,实际意义不大,如果想用Smarty,可以直接在Controller中用。 |
Version 0.8 Beta Fatal error: Class 'Cola_Helper_Benchmark?' not found in /home/www/ColaPHP/demo/index.php on line 10
SVN的代码是正确的,但是download list 的ZIP包文件乱了。