美文网首页
CakePHP初学小记

CakePHP初学小记

作者: LaputCat | 来源:发表于2019-10-09 14:06 被阅读0次
    不定期持续更新学习中.....
    主要基于Cakephp 2.x版本进行总结

    Cakephp 2.x版本APi

    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 的默认布局。一旦新的默认布局被创
    建,控制器显示的视图代码就会被放到新的布局中去。
    
    元素:重复使用的代码块
    
    助手
    
    window环境下使用cake bake 生成C M V 文件
    确定console文件位置
    image.png
    遇到问题
    需要配置系统环境变量
    cake bake  和php
    配置完成后重新打开命令行--->我使用git bash
    运行 php -v看是否正常
    
    image.png
    生成对应的数据表MVC文件
    image.png

    相关文章

      网友评论

          本文标题:CakePHP初学小记

          本文链接:https://www.haomeiwen.com/subject/vunmyctx.html