(一)簡介
本文主要介紹CakePHP架構,及怎樣安裝配置使用此架構入門進行開發。
(二)需求(1)了解基本PHP 代碼。(2)已配置Apache+MySQL+PHP的開發環境。
(三)正文(1) CakePHP介紹
CakePHP是一個基於PHP,免費且開源的MVC框架。它相對其它一些PHP架構(如zend framework)更簡單,可以使使用著更快速且不失靈活性地創建網絡應用程序。因此對於普通初學者都能容易上手。
CakePHP有以下特點:
擁有既友好又活躍的社區
靈活的MIT 許可證
兼容 PHP4 和 PHP5
數據庫交互運用了 CRUD
應用程序腳手架
代碼自動產生(代碼產生器)
MVC 體系架構
清晰,干淨的高度自定義的URLs和路由請求分發器
內建validation驗證
快速靈活的模板機制 (PHP syntax, with helpers)
擁有AJAX, JavaScript, HTML表單和更多的視圖助手工具
郵件、Cookie、安全、會話(Session),和請求處理的組件
靈活的ACL訪問控制機制
數據清理
靈活的視圖緩存Caching
本地化
可在任何子目錄裡工作,很少甚至不需要更改任何 Apache 相關配置
(2) 配置開發
從http://cakephp.org/下載 CakePHP,當前的最新版本是:1.2.3.8166
下載後解壓到服務器的根目錄下,如:/wwwRoot/First_App,同時可以改變根目錄直接指向First_AppAppWebRoot,即如:DocumentRoot "D:PHPwwwRootFirst_Appappwebroot"
重啟Apache服務。浏覽:http://localhost/
如果看到和此相同的頁面,說明你的Apache服務配置正確。同時可以看到頁面上的4個提示信息,黃色的是你必須配置的。
配置如下:
1。在First_AppappconfigCore.php找到 Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
將後面的鍵隨便改成40個左右的任意字符串就可以了。
2。將文件First_Appappconfigdatabase.php.default的文件名改為:database.php,更改裡面的數據庫連接,可刪除test的配置,最後的配置如下:
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '123',
'database' => 'cake',
'prefix' => '',
);
}
3.如果First_Appapptmp不是可寫,還需將改為可寫。
更改後保存,再次浏覽http://localhost/,你會發現上面的黃色提示全變成綠色。
4.路由配置,此才是整個配置的關鍵保證下面能否正確進行的關鍵。
路由用來映射URL和控制器的action
URL 樣式的默認路由:
http://example.com/controller/action/param1/param2/param3
修改httpd.conf開啟mod_rewrite
1去掉#LoadModule rewrite_module modules/mod_rewrite.so前的#號
2同時將AllowOverride none 改為AllowOverride all
如:
Options FollowSymLinks
AllowOverride all
上面是將所有網站目錄都設為Allowoverride all,如果為all,apache服務將.htaccess來控制路由,設為none,將不予處理目錄下.htaccess中的路由
可以指定單獨目錄進行路由,需在
AllowOverride all
更改httpd.conf後需重啟Apache服務。
(3) 使用架構
如果配置正確後,就可以加入自己的代碼。
3.1 創建數據庫表
Create Table Items
(
id int (11) unsigned auto_increment,
name varchar(200),
text varchar(200),
CreateTime timestamp default current_timeStamp,
primary key (id)
)
insert into Items(name,text) values('Item 1','Item 1 content');
3.2創建Model:First_AppappmodelsItem.php
create Item extends AppModel{
var $name = 'Item';
}
?>
3.3創建Controller:First_AppappcontrollersItems_Controller.php
class ItemsController extends AppController{
var $name = 'Items';
var $scaffold;
}
?>
3.4浏覽:http://localhost/Items,後的結果如下: