我使用的cakephp版本是1.3,我的cakephp应用名是gj
配置完数据库之后,就可以开始做开发了。但数据库配置还有点需要提醒,encoding
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'gjcn',
'prefix' => '',
'encoding' => 'UTF8',
);
接着还是讲app/config/router.php,这个文件可以控制url路径访问的跳转。
Router::connect('/', array('controller' => 'langs', 'action' => 'index',$arg1,$arg2));
这是说明访问localhost/gj/的时候会自动访问langs控制器的index方法,在index参数后面加上逗号,添加任何参数都是传入到index方法的参数里面,index方法的参数会自动按照顺序从url里面读取。cakephp的路由非常强大,我现在只是了解皮毛。
然后是从一个项目的模型层进行设计,进行写sql文件,创建数据表,创建完成后,我使用cake控制台来生成controller、model和view。
这里我是从windows7环境进行测试的,cakephp的控制台:
1、先设置电脑PATH环境,添加D:\programs\wamp\www\cakephp\cake\console;D:\programs\wamp\php;大概就是添加cake console和php命令。
2、进入CMD后,先将工作目录进入到/gj/之后,记住要进入gj/这个目录才行,就可以使用cake bake all命令选择要生成的mvc的数据表。
3、接着下来的都很简单,不再想说。
生成了大量的mvc。
生成大量的mvc后,在/gj/app目录下新建一个app_controller,然后app/controller目录下的所有控制器都会继承app_controller。代码如下:
<?php
class AppController extends Controller {
var $components = array('Auth','Session');
function beforeFilter() {
//Configure AuthComponent 配置Auth组件,Auth组件采用SHA1的加密方法。
$this->Auth->allowedActions = array('display','logout','login');//允许这些方法通过Auth组件的检验
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'products', 'action' => 'index');
if(!$this->Session->check('lang'))
{
$this->Session->write('lang',0);
}
date_default_timezone_set('Asia/Chongqing');
}
}
?>
它是继承Controller,这里的属性都会被其他controller所有继承,所有可以这里添加一些共用的东西。
beforeFilter方法就是执行控制器里的方法前都会执行的。Auth组件是简单的用户登陆权限控制。等下再讲Auth组件。
创建完app_controller之后,我便会对model进行一些修改。就是对数据进行简单的检验。model有个比较奇怪的现象就是,<?php开头,没有?>结尾,所以我也没有补全。按照它原来那样