说明:
可以修改和发布,但是请保留原作者信息
- author:Liuchen
Email:helloliuchen@hotmail.com helloliuchen@gmail.com
blog: liuchen.cnblogs.com
Date: 2006-03-17
version 0.1
序
1,读者
这份手册是为了那些想快速建立web程序的人所写。CakePHP是为了帮助PHP各个层次用户简单快速的创建健壮、可维护的程序
这份手册需要一些PHP和HTML的基础知识,对MVC编程模式的一些了解。
2,CakePHP是免费的
遵循MIT License,主页http://www.cakephp.org
3,社区
更多信息http://www.cakephp.org
第一章 CakePHP介绍
1,什么是CakePHP
CakePHP是一个开元的PHP的快速开发框架
2,为什么用CakePHP
CakePHP拥有一些快速开发的特征
1,兼容PHP4和PHP5
2,提供整合的数据库交互CRUD和简单的查询(包括 scaffolding)
3,Request dispatcher(原文Request dispatcher with good looking, custom URLs)
4,快速可变的模版(使用helpers的PHP语法)
5,许多有用的核心特征(access control lists以及AJAX整合等等)
6,在任何网站子目录下面都正常工作,很少需要Apache的配置(原文Works from any website subdirectory, with little to no Apache configuration involved)
3,CakePHP的历史
2005年,Michal Tatarynowicz用PHP写了一个快速开发的框架并发现这是一个好的框架的开始,于是Michal Tatarynowicz在MIT License下公布了这个框架并命名为Cake,并向开发者社区公布,后者现在维护项目并命名为CakePHP
第二章 基本概念
1 MVC模式
为了更好的理解类似Cake的web程序,你需要了解一些 Ruby on Rails这个框架,Cake的灵感就来自于Ruby on Rails。Ruby on Rails是编程语言Ruby的网站开发框架。它实现了Active Record和MVC模式。文章 What goes Where?详细解释了Rails的结构,Cake也使用了类似的结构。
Model View Controller是Gang of Four描述的一个软件的设计模式,Dean Helman介绍:“MVC模式,将一个项目,甚至是一个接口分成三个部分:model,view和controller。开发MVC是为了将传统的输入,处理,输出映射到GUI领域
Input -> Processing -> Output
Controller -> Model -> View
用户输入,外部世界的模型和显示用户的输出被model,view port和controller objects所操作。controller将用户的鼠标、键盘操作解释并映射到对应的命令,然后发送给model或者view并影响相应的变化。model管理一个或若干数据元素,根据状态的查询、变化状态的操作做对应的响应。view port管理一个矩形的显示,并通过图形和文字的结合对给用户准备好的数据作出响应(注:我认为就是显示出来)
关于MVC,你可以通过这个文章了解更多的机制 MVC: Most vexing conundrum
2,Cake的文件结构
当你解压缩安装包,你会发现四个文件夹app, cake, tmp 和vendors.其中cake文件夹是cake的核心库,基本上你不需要进行修改除非你需要对Cake进行一些定制
在0.10.0版本发布之前,CakePHP并不是这样的,老版本都是在一个统一的文件夹Cake下面,这种结构证明有一些问题
1,如果你有许多的web应用程序,你需要下载并安装Cake两次,这样核心库就重复了,这个是空间的一种浪费。并且违背了CakePHP试图遵循的DRY哲学原则
2,当CakePHP新的版本发布时,你必须非常小心的以免你的app文件夹下面的程序被默认的程序覆盖
app文件夹是你的程序和文件所在的地方。核心库文件夹cake和程序文件夹app的愤慨使得你可以有许多的程序,但只需要一份cake库,并且使得升级CakePHP变得更加容易:你只需要下崽最新版本的Cake并把你当前的核心库cake文件夹覆盖掉,而不需要旦夕覆盖掉你的app文件夹
tmp文件夹是用于存储cake操作的变量,比如baking,caching和logging
vendors文件夹用于存放第三方库文件,你需要在稍后更多的了解vendors
下面的列表显示了主要的文件夹和他们的基本目的
●cake(根目录)
○app(存放你的程序)
●config(配置文件,比如ACL,core, database connection,routes, paths, tags)
●controllers(放置controllers)
●(components,帮助你使用controller的类)
●index.php(cake中有三个该文件,方便用户用不同的方法配置cake)
●models(放置models)
●plugins(放置plugins或者第三方程序)
●views(view相关文件)
●elements(一些重复使用的较小的layout item)
●errors(错误文件)
●helpers(自定义的helpers文件)
●layouts(layout文件)
●pages(PagesController管理的静态内容)
●webroot(把这个目录设置成为网站根目录,并将public files放在这里)
●css
●files
●img
●js
○cake(库文件:最好不要修改)
○index.php
○tmp(用来放置logs,baking)
○vendors(粘贴第三方库文件)