CakePHP初学小记
2019-10-09 本文已影响0人
LaputCat
不定期持续更新学习中.....
主要基于Cakephp 2.x版本进行总结
Cakephp命名规范
- 控制器
控制器的类名是复数,首字母大写, 并且以 Controller 结尾。
例子:UsersController 和 ArticleCategoriesController 。
$this->User 单数
- 访问控制器URL
单个单词的控制器映射到一个简单的小写URL路径。例如 `UsersController` (将是定义在名称为 **UsersController.php** 的文件中)
可以从
[http:\/\/example.com/项目名/控制器类复数]
(http:\/\/example.com/demo/users)
注意:
访问的URL路径是小写并且用 DashedRoute 类来分割。
因此,/article-categories/view-all 是访问 ArticleCategoriesController::viewAll() 方法的正确方式。
- 文件名和类名命名
控制器类 LatestArticlesController 将对应文件名 LatestArticlesController.php
组件类 MyHandyComponent 将对应文件名 MyHandyComponent.php
Table 类 OptionValuesTable 将对应文件名 OptionValuesTable.php.
Entity 类 OptionValue 将对应文件名 OptionValue.php.
Behavior 类 EspeciallyFunkableBehavior 将对应文件名 EspeciallyFunkableBehavior.php
视图类 SuperSimpleView 将对应文件名 SuperSimpleView.php
Helper 类 BestEverHelper 将对应文件名 BestEverHelper.php
-数据库表名命名
需与Model层名字对应并且 复数形式并用下划线分割(两个单词以上)
users, article_categories, 和 user_favorite_pages 等。
- 模型层命名
单数形式
主要是分两类
Table 类名是复数、首字母大写、以 Table 结尾的。
UsersTable、ArticleCategoriesTable 分别是对应 users、article_categories表的 table 类名。
Entity 类名是单数、首字母大写、无后缀的。
User、ArticleCategory 分别是对应 users、article_categories表的 entity 类名。
- 视图层命名
视图模板文件使用它对应的控制器方法的名字以下划线形式命名。
ArticlesController 类的 viewAll() 防范将会对应视图模板文件 src/Template/Articles/view_all.ctp。
- 请求方式与获取
POST 数据可以通过 $this->request->getData() 获取
GET 数据可以通过 $this->request->query()获取
- debug打印变量内容信息
检查它里面的数据内容,我们可以通过方法 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() 函数将数据传入模版(将在下部分创建)。CakePHP 将会自动渲染模版。
- cookie使用
//配置cookie
$this->Cookie->configKey('User', [
'expires' => '+10 days',
'httpOnly' => true
]);
//配置参数如下
expires path domain secure key httpOnly entryption
//设置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 目录中。可以通过创建
/app/views/layouts/default.ctp 文件来覆盖 CakePHP 的默认布局。一旦新的默认布局被创
建,控制器显示的视图代码就会被放到新的布局中去。
元素:重复使用的代码块
助手
- cakephp 关联关系
cakephp 关联关系理解
window环境下使用cake bake 生成C M V 文件
确定console文件位置
image.png遇到问题
需要配置系统环境变量
cake bake 和php
配置完成后重新打开命令行--->我使用git bash
运行 php -v看是否正常
image.png