cakephp基本原则CakePHP 框架提供了强大的基础来建立你的应用
它可以处理每个细节,从用户的不同请求,到网页的最终渲染
由于框架符合 MVC 设计模式思想,所以可以轻松地定制和扩展你的应用
该框架也提供了一个基本的组织结构,从文件名到数据库表名,使你的整个应用保持一致性和逻辑性
这个概念虽简单但非常强大
遵守规则,会使你确切地知道东西在哪儿和它们怎么组织的
CakePHP的结构控制器 (Controller),模型 (Model) 及视图 (View) 是 CakePHP 的特色,除此之外它也包含了一些附加的类和对象,使得在 MVC 设计模式下开发更快更有乐趣
组件 (Component)、行为 (Behavior) 及助手 (Helper),提供了可扩展性及可重用性来快速新增功能到你的应用中
我们将站在较高的层级上,接着开始寻找一些关于如何使用这些工具的细节
一次典型的CakePHP请求我们已经看过CakePHP的基本成分了,那么就来看看各个对象怎么完成一个基本的请求
继续讲我们之前的请求的例子,想象一下我们的朋友Ricardo刚刚在一个CakePHP的应用的首页上点击了“立刻买一个自定义的蛋糕!”这个链接
黑色 = 请求的元素, 灰色 = 可选的元素, 蓝色 = 回调方法1.Ricardo 点击了指向一个URL 的链接, 然后他的浏览器对你的服务器发出了一个请求
2.路由(route)从URL中解释并提取出这次请求的参数: 控制器(controller), 动作(action)以及其他在这次请求中影响到业务逻辑的所有其他参数
3.使用路由后,请求的URL被映射到一个控制器的动作中(在特定的一个控制器的类的一个方法)
在这个例子,是CakeController类的buy()方法
在控制器的所有动作逻辑执行之前会调用beforeFilter()回调方法(callback)
4.控制器可能会使用模型来处理应用的数据
在这个例子里,控制器使用了一个模型从数据里得到Ricardo上次买的东西
在这次操作中所有这个模型适用的回调方法、习惯(behavior)和数据源(DataSource)都可能得到实施
即使模型没有被用到,所有的CakePHP控制器的初始化至少都需要一个模型
5.当模型取得数据后,数据会被返回到控制器
模型的回调方法可能会被实施
6.控制器可能使用组件对数据进行进一步的加工,或者进行其他的操作(例如会话处理、验证或者发电子邮件)
7.一旦控制器使用了模型和组件以有效地准备数据,就可以使用控制器的set()方法把数据传送到视图(view)
在数据送到视图前,控制器的回调方法可能会被实施
视图逻辑会被执行,可能包括了各种元素及(或者)帮助方法
默认情况下,视图会在一个布局(layout)里被渲染
8.附加的控制器回调方法(像afterFilter)可能被实施
最后,完整的经过渲染的视图代码就被送到Ricardo的浏览器了
CakePHP 文档结构在你下载并且解压缩之后,在CakePHP目录下会看到这样一些文件和目录:1. app2. cake(较高的cakephp版本是lib/Cake)3. vendors4. .htaccess5. index.php6. README其中有三个主要的目录:1.app目录,将是你施展魔术之处——放置你应用程序的地方
2.cake目录,是CakePHP的核心代码,请不要随意修改这里边的代码,除非你确信自己有这个能力
3.vendors目录,是放置第三方PHP库的地方
如果在开发过程中还引入一些除CakePHP之外的库,最好放在这个目录下,便于代码的管理
config拥有一些CakePHP使用的设定
资料库连结的详细资料、启动组态、核心设定档案及许多应该被储存在这里的档案
controllers包含你的应用程式控制器及它们的组件
locale储存用来国际化的字元档案
models包含你的应用程式模型、行为和资料来源
plugins包含插件包裹
tmp这是用来储存CakePHP暂存资料的
实际上储存的资料是看你如何设定CakePHP,但这个资料夹通常用来储存模型描述、记录档和会谈资讯
vendors所有的第三方类别或函式库应该被放置在这个资料夹
可以简单的以App::import('vendor', 'name')使用它们
也许你会觉得多馀或困惑于此处有vendors而上一层目录内也有vendors资料夹,这其中的差异是当我们讨论到管理多应用程式和较为复杂的系统设定时,可以使用不同的配置
views展示层的档案被放置在此处:元素、错误页面、小帮手、布局和视图档案
webroot在产品安装模式下,这个资料夹应该是应用程式的根目录
包含了样式表、影像和JavaScript档案可放置的资料夹
CakePHP命名规则我们是命名规则的拥护者
虽然需要花费一点时间来学习CakePHP的命名规则,你省下更多时间在开发上:根据以下的命名规则,你得到不需花钱的功能,以及你将自己从搜寻设定档维护的恶梦中释放出来
命名规则达成一致的系统开发,允许其它的开发者较容易加入或是提供协助CakePHP的命名规则从许多开发者多年的经验及一些惯例筛选出来
尽管我们建议你开发时使用命名规则,我们应该提及大部份这些规则简单又直观,特别是在修改旧有系统时较为轻松容易
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。