CakePHP中文手册【翻译】-基本概念
基本概念
第1节
介绍
本章是对MVC概念的一个短小而且随意的介绍,因为这些概念在Cake里得到实现。如果你是一个MVC模式的新人,很显然本章就是为你而写的。我们从MVC的一般概念的讨论开始,然后以我们自己的方式切入到CakePHP里的MVC的特定应用程序,并且展示一些简单的使用MVC模式的CakePHP例子
第2节
MVC模式
Model-View-Controller是一软件设计模式,它帮助你把逻辑和代码进行分离,使代码变得更加可重用,可维护,变得更加优秀。MVC由四人帮第一次描述。Dean Helman写到(它精确来自Objective Toolkit Pro白皮书):
"MVC是一种打破应用程序的方式,甚至仅是一段应用程序的接口,它分成3部分:模型(Model),视图(View),以及控制器(Controller)。MVC的开发原本是为了将传统的输入,处理,输出的角色转化为GUI的层面。”
输入->处理->输出
控制->模型->视图
“用户的输入,外部世界的建模,以及用户的可视化回馈都被模型,视图以及控制对象进行分隔和处理。控制器解释了鼠标和键盘的用户输入,并将这些用户操作映射为命令发送到模型和/或视图口(port),并做出适当的改变。模型管理一个或多个数据元素,并响应它的状态查询以及响应改变状态的指令。视图口管理矩形的显示区域,并负责以图形和文本的组合方式将数据呈现给用户。”
在Cake里,Model代表了一个特定的数据库表/记录,以及与其他表和记录的关系。Model也包含数据的验证规则,当插入或更新model数据时会采用这些规则。View代表Cake的视图文件,他们是正规的嵌入PHP代码的HTML文件。Cake的Controller处理来自Server的请求。它采用用户输入(URL和POST数据),应用业务逻辑,使用Model从数据库和其他数据源读写数据,最后将输出的数据发送到合适的view文件。
为了尽可能简单的组织你的应用程序,Cake使用这个模式,不仅管理这些对象如何和你的应用程序交互,而且还管理文件如何保存,这将在下面详细介绍。
第3节
当你在Server上解压缩Cake包时,你会发现有3个主要的文件夹:
app cake vendors |
cake文件夹是Cake层的核心库所在之处,一般来说,你永远不需要接触他们。
app文件夹是你的应用程序文件夹和文件所在之处。对你来说,cake和app文件夹的分离,让有多个app的文件夹共享单个Cake库变为可能。这同时也让CakePHP的更新变得更为简单:仅需要下载最新版本的Cake,然后覆盖当前的核心库即可。没有必要担心它会覆盖某些编写的应用程序的东西。
你可以使用vendors目录维护第三方库。后面将学习更多关于vendors的知识,但是基本的概念是,你可以使用Cake的vendor()方法访问vendors目录下放置的类。
让我们看看整个层次结构:
/app /config - 包含数据库,ACL等的config文件 /controllers - 是Controller在这里 /components - Components 在这里 /index.php - 允许你用/app作为DocumentRoot来部署 /models - Models在这里 /plugins - Plugins 在这里 /tmp -用来存放cache和log /vendors -包含此应用程序的第三方库 /views - Views 在这里 /elements -元素,少量视图 /errors -自定义的错误页面 /helpers - Helper /layouts -应用程序的布局文件 /pages -静态的视图 /webroot -应用程序的 DocumentRoot /css /files /img /js /cake -Cake的核心库。不要编辑任何文件 index.php /vendors -server级的第三方库 VERSION.txt -让你知道你正在使用哪个版本的Cake |
Last Updated:2006年11月30日
转载于:https://www.cnblogs.com/confach/articles/547088.html
CakePHP中文手册【翻译】-基本概念相关推荐
- 20050620 GNU Bison 中文手册翻译完成
20050620 GNU Bison 中文手册翻译完成 GNU Bison实际上是使用最广泛的Yacc-like分析器生成器,使用它可以生成解释器,编译器,协议实现等多种程序. 它不但与Yacc兼容还 ...
- CakePHP中文手册【翻译】-Cake Blog创建指南
Cake Blog创建指南 第1节 介绍 欢迎来到Cake.你可能正在使用本指南,因为你想学习更多关于Cake是如何工作的知识.其目的就是为了提高效率,并且让编写代码变得更加有趣.我们希望当你深入代码 ...
- CakePHP中文手册【翻译】
0.声明 1.前言 2.介绍CakePHP 3.基本概念 4.安装CakePHP 5.配置 6.Scaffolding 7.Model 8.Controller 9.View 10.Component ...
- CakePHP中文手册【翻译】-请求处理组件
请求处理组件 第1节 介绍 在Cake里,使用请求处理组件来决定关于进来的HTTP请求信息.你可以使用它更好的通知你的controller关于AJAX请求,得到关于远程客户端IP地址,以及请求的内容类 ...
- CakePHP中文手册【翻译】-ACL
访问控制列表(ACL) 第1节 理解ACL如何工作 最重要,也最强大的事情是需要一系列的访问控制.访问控制列表是一种细粒度,易维护以及易管理的方式来管理应用程序权限.访问控制列表或ACL[1]处理2件 ...
- CakePHP 中文手册
基本概念 Section1 简介 本章节篇幅很短,简单的介绍一下MVC概念以及在cake中是如何实现的.如果你对MVC模式很陌生,这个章节将会非常适合你.我们由 常规的MVC概念开始我们的讨论,然后用 ...
- cakephp $this-html-css,CakePHP - 中文手册
Helper(帮助类) Section 1 Helpers Helper类就是为视图提供了常见且通用的方法,更好更快的格式化或者展现数据. HTML Helper 介绍 HTML Helper是Cak ...
- Magento 2中文手册之常见概念解析
indexer 索引机制 magento2自带索引机制,例如catalog是一个EAV结构,所以catalog的数据很分散,查询效率比较低,系统每次reindex都会把catalog数据通过index ...
- bq24773功能分析(中文手册翻译)
1. 特性 1-4节电池充电控制,输入电压范围4.5-24V 支持IIC 无电池或电池深度放电的情况下支持系统即时启动操作 可在适配器满载时进入补充模式,支持同步BATFET 控制 可编程输入电流限制 ...
最新文章
- 【APUE】文件 I/O 操作
- 如何在Linux使用Eclipse + CDT开发C/C++程序?
- c++ 整数取反_c++ 取反运算符“~”
- linux 分隔大文件,linux系统下分割大文件的方法
- jQuery选择器总结[转]
- CSS3 过渡和动画
- caffe︱Places365-CNNs For Scene Recognition
- pythonforin替换字符_Python:用一个字符串替换数组中的数字(Python: Replace a number in array with a string)...
- 网易互娱基于 Flink 的支付环境全关联分析实践
- JAVA----简单的自旋锁
- 有关cdsn论坛被封后如何解封
- 打破超星封锁——PDG转PDF方法
- 表情识别相关论文摘要
- Cocos2d-x组件的创建与挂载
- php微信登陆流程,thinkphp微信授权登陆具体流程~
- Microsoft Excel 教程:如何在 Excel 中创建图表?
- W10电脑U盘插入电脑不显示盘符但是“安全删除硬件并弹出媒体”中却有该U盘
- 20000字干货,数据分析 Pandas 75个高频操作都在这儿了!
- 化妆品护肤DiY的广告界面 简单的jquery 图片无缝滚动
- Java 用键盘输入 int型 String型 char型数据 示例:简单计算功能 eclipse
热门文章
- 聊天IM的时间戳显示规则
- UIAlertController 警告框
- 2011-08-15 “can’t create transaction lock on /v...
- 分布式共识算法 (Consensus Algorithm)
- 5-1 duck typing的概念
- 84.负载均衡哈希算法:ip_hash与hash模块
- java file 方法_JAVA中File的常用方法
- c语言人事管理系统,c语言人事管理系统
- oraclejobs_Oracle Scheduler Jobs
- 互信息python代码_转:标准化互信息NMI计算步骤及其Python实现