CakePHP系列(一)----CakePHP3.4一览
来源:互联网 发布:java环境变量配置path 编辑:程序博客网 时间:2024/05/17 20:24
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文件夹结构
- CakePHP系列(一)----CakePHP3.4一览
- 攻克CakePHP系列一:连接MySQL数据库
- CakePHP系列(二)----Bookmarker案例(一)
- CakePHP系列(二)----博客(Blog)案例(一)
- CakePHP系列(四)----配置
- CakePHP系列(五)----路由
- CakePHP系列(三)----安装
- cakephp整理(一)
- 自学CakePHP 日志文档(一)
- [PHP]CakePHP学习(一)
- cakephp开发记录(一)
- CakePHP中文教程4
- cakephp 学习4
- cakephp菜鸟笔记4
- cakephp
- CakePHP
- cakephp
- cakephp
- Qt快捷键
- 小玉在游泳
- Android Studio在小米手机上安装apk时显示“Installation failed with me
- Node.js数据库连接语句的使用错误
- Vue.js2.0从入门到放弃---入门实例
- CakePHP系列(一)----CakePHP3.4一览
- 机顶盒项目--遥控器组合键的实现
- 第二十五章 SpringBoot导入XML配置
- ionic开发——内容超出滚动,水平滚动,垂直滚动及ios无法滚动问题
- PAT 1051
- Android-butterKnife的使用及Zelezny插件的安装
- mac 安装svn以及安装eclipse svn插件
- JavaScript DOM 笔记
- Process 'command 'D:\android-ndk-r10\ndk-build.cmd'' finished with non-zero exit value 2