CakePHP系列(一)----CakePHP3.4一览

来源:互联网 发布:java环境变量配置path 编辑:程序博客网 时间:2024/05/17 20:24
一、CakePHP一览

CakePHP旨在使常见的Web开发任务简单,容易。 通过提供一个一体化工具箱,您可以开始使用CakePHP的各个部分一起或单独工作。

本概述的目标是介绍CakePHP中的一般概念,并快速概述这些概念如何在CakePHP中实现。 如果您想开始开发项目,可以从教程开始 ,或者深入了解文档 。


二、约定优于配置


CakePHP提供了一个基本的组织结构,涵盖类名,文件名,数据库表名和其他约定。 虽然约定需要一些时间来学习,通过遵循CakePHP提供的约定,您可以避免不必要的配置,并使统一的应用程序结构,使工作与各种项目简单。约定章节涵盖CakePHP使用的各种约定。


三、模型层


Model层表示实现业务逻辑的应用程序的一部分。 它负责检索数据并将其转换为应用程序中的主要有意义的概念。 这包括处理,验证,关联或与处理数据相关的其他任务。

在社交网络的情况下,Model层将负责诸如保存用户数据,保存朋友的关联,存储和检索用户照片,找到对新朋友的建议等任务。模型对象可以被认为是“朋友”,“用户”,“评论”或“照片”。 如果我们想从users表中加载一些数据,我们可以做:


use Cake\ORM\TableRegistry;$users = TableRegistry::get('Users');$query = $users->find();foreach ($query as $row) {    echo $row->username;}

您可能会注意到,在我们开始使用我们的数据之前,我们不需要编写任何代码。 通过使用约定,CakePHP将为尚未定义的表和实体类使用标准类。

如果我们想创建一个新用户并保存它(使用验证),我们会做:


use Cake\ORM\TableRegistry;$users = TableRegistry::get('Users');$user = $users->newEntity(['email' => 'mark@example.com']);$users->save($user);



四、视图层


View层渲染建模数据的呈现。 与Model对象分离,它负责使用可用的信息来生成应用程序可能需要的任何呈现界面。

例如,视图可以使用模型数据来呈现包含它的HTML视图模板,或者使用XML格式的结果供其他人使用:


// In a view template file, we'll render an 'element' for each user.<?php foreach ($users as $user): ?>    <li class="user">        <?= $this->element('user', ['user' => $user]) ?>    </li><?php endforeach; ?>


View层提供了一些扩展点,例如View Templates ,Elements和View Cells,让你重用你的表示逻辑。

视图层不仅限于数据的HTML或文本表示。 它可以用于提供常见的数据格式,如JSON,XML,并通过可插入架构任何其他格式,如CSV可能需要。


五、控制器层


Controller层处理来自用户的请求。 它负责在模型层和视图层的帮助下渲染响应。

控制器可以被看作是一个管理器,确保完成任务所需的所有资源都被委派给正确的工作者。 它等待来自客户端的请求,根据认证或授权规则检查其有效性,向模型委派数据获取或处理,选择客户端正在接受的呈现数据的类型,并且最终将呈现过程委托给View层。 用户注册控制器的示例将是:


public function add(){    $user = $this->Users->newEntity();    if ($this->request->is('post')) {        $user = $this->Users->patchEntity($user, $this->request->getData());        if ($this->Users->save($user, ['validate' => 'registration'])) {            $this->Flash->success(__('You are now registered.'));        } else {            $this->Flash->error(__('There were some problems.'));        }    }    $this->set('user', $user);}



六、CakePHP请求周期


现在您已经熟悉CakePHP中的不同图层,让我们了解一下请求周期在CakePHP中的工作原理:





典型的CakePHP请求周期从用户请求应用程序中的页面或资源开始。 在高级别,每个请求通过以下步骤:


1.Web服务器重写规则将请求定向到webroot / index.php 。
2.您的应用程序已加载并绑定到HttpServer 。
3.应用程序的中间件已初始化。
4.请求和响应通过您的应用程序使用的PSR-7中间件分派。 通常这包括错误捕获和路由。
5.如果没有从中间件返回响应并且请求包含路由信息,则选择控制器和动作。
6.调用控制器的操作,控制器与所需的模型和组件交互。
7.控制器将响应创建委派给视图,以生成从模型数据产生的输出。
8.该视图使用Helpers和Cells来生成响应主体和标头。
9.响应通过中间件返回 。
10.HttpServer向HttpServer发出响应。


七、这只是个开始


希望这个快速概述引起了您的兴趣。 CakePHP中的其他一些重要功能包括:

   ● 集成Memcached,Redis和其他后端的缓存框架。
   ● 强大的代码生成工具 ,让您可以立即开始。
   ● 集成测试框架 ,所以你可以确保你的代码工作完美。


下一个明显的步骤是下载CakePHP ,阅读教程并构建一些了不起的东西 。


八、附加阅读


  ● 在哪里获得帮助

  ● CakePHP约定

  ● CakePHP文件夹结构

0 0
原创粉丝点击