不定期持續(xù)更新學(xué)習(xí)中.....
主要基于Cakephp 2.x版本進(jìn)行總結(jié)
Cakephp命名規(guī)范
- 控制器
控制器的類名是復(fù)數(shù),首字母大寫, 并且以 Controller 結(jié)尾。
例子:UsersController 和 ArticleCategoriesController 侮叮。
$this->User 單數(shù)
- 訪問控制器URL
單個(gè)單詞的控制器映射到一個(gè)簡單的小寫URL路徑斤讥。例如 `UsersController` (將是定義在名稱為 **UsersController.php** 的文件中)
可以從
[http:\/\/example.com/項(xiàng)目名/控制器類復(fù)數(shù)]
(http:\/\/example.com/demo/users)
注意:
訪問的URL路徑是小寫并且用 DashedRoute 類來分割芥永。
因此肛冶,/article-categories/view-all 是訪問 ArticleCategoriesController::viewAll() 方法的正確方式滤奈。
- 文件名和類名命名
控制器類 LatestArticlesController 將對應(yīng)文件名 LatestArticlesController.php
組件類 MyHandyComponent 將對應(yīng)文件名 MyHandyComponent.php
Table 類 OptionValuesTable 將對應(yīng)文件名 OptionValuesTable.php.
Entity 類 OptionValue 將對應(yīng)文件名 OptionValue.php.
Behavior 類 EspeciallyFunkableBehavior 將對應(yīng)文件名 EspeciallyFunkableBehavior.php
視圖類 SuperSimpleView 將對應(yīng)文件名 SuperSimpleView.php
Helper 類 BestEverHelper 將對應(yīng)文件名 BestEverHelper.php
-數(shù)據(jù)庫表名命名
需與Model層名字對應(yīng)并且 復(fù)數(shù)形式并用下劃線分割(兩個(gè)單詞以上)
users, article_categories, 和 user_favorite_pages 等哀蘑。
- 模型層命名
單數(shù)形式
主要是分兩類
Table 類名是復(fù)數(shù)厘贼、首字母大寫界酒、以 Table 結(jié)尾的。
UsersTable嘴秸、ArticleCategoriesTable 分別是對應(yīng) users毁欣、article_categories表的 table 類名。
Entity 類名是單數(shù)赁遗、首字母大寫署辉、無后綴的。
User岩四、ArticleCategory 分別是對應(yīng) users哭尝、article_categories表的 entity 類名。
- 視圖層命名
視圖模板文件使用它對應(yīng)的控制器方法的名字以下劃線形式命名剖煌。
ArticlesController 類的 viewAll() 防范將會(huì)對應(yīng)視圖模板文件 src/Template/Articles/view_all.ctp材鹦。
- 請求方式與獲取
POST 數(shù)據(jù)可以通過 $this->request->getData() 獲取
GET 數(shù)據(jù)可以通過 $this->request->query()獲取
- debug打印變量內(nèi)容信息
檢查它里面的數(shù)據(jù)內(nèi)容,我們可以通過方法 pr() 或者 debug()
- Edit編輯功能頁面信息提示
2.3版本
$this->Session->setFlash('edit successfully');
2.10以上版本
$this->Flash->success(__('Your article has been updated.'));//提示更新成功信息
$this->Flash->error(__('Unable to update your article.'));//提示更新失敗信息
- 綁定至視圖
$this->set(compact('article'));
$this->set('article', $article); //注入article視圖 使用 set() 函數(shù)將數(shù)據(jù)傳入模版(將在下部分創(chuàng)建)耕姊。CakePHP 將會(huì)自動(dòng)渲染模版桶唐。
- cookie使用
//配置cookie
$this->Cookie->configKey('User', [
'expires' => '+10 days',
'httpOnly' => true
]);
//配置參數(shù)如下
expires path domain secure key httpOnly entryption
//設(shè)置cookie值
$this->Cookie->write('name', 'Larry');
$this->Cookie->write('User',
['name' => 'Larry', 'role' => 'Lead']
);
$this->Cookie->configKey('User', 'encryption', false);
//讀取cookie
$this->Cookie->read('User');
//刪除cookie
$this->Cookie->delete('foo.bar');
- Paginator分頁
class ArticlesController extends AppController
{
public $paginate = [
'fields' => ['Articles.id', 'Articles.created'],
'limit' => 25,
'order' => [
'Articles.title' => 'asc'
]
];
public function initialize()
{
parent::initialize();
$this->loadComponent('Paginator');
}
}
- 前端視圖頁面
三部分組成
布局:
布局文件存放在/app/views/layouts 目錄中≤岳迹可以通過創(chuàng)建
/app/views/layouts/default.ctp 文件來覆蓋 CakePHP 的默認(rèn)布局尤泽。一旦新的默認(rèn)布局被創(chuàng)
建,控制器顯示的視圖代碼就會(huì)被放到新的布局中去规脸。
元素:重復(fù)使用的代碼塊
助手
- cakephp 關(guān)聯(lián)關(guān)系
cakephp 關(guān)聯(lián)關(guān)系理解
window環(huán)境下使用cake bake 生成C M V 文件
確定console文件位置
遇到問題
需要配置系統(tǒng)環(huán)境變量
cake bake 和php
配置完成后重新打開命令行--->我使用git bash
運(yùn)行 php -v看是否正常