开发
编辑
必要条件
最好是带模块的,但不是必要条件.
或更高版本,没错,可以在php4或是5下面运行.
技术上来说,数据库不是必需的,但我们设想每个应用都会用到数据库,支持大部分数据库::
3.FirebirdDB2
4.MicrosoftSQLServer
5.Oracle
6.SQLite
7.ODBC
8.ADOdb
准备安装
CakePHP
运行很快并且很容易安装。最小的安装环境就需要一个服务器和一份Cakephp的拷贝就行了。很简单的。然而这份文档主要对如何在apache服务器下进行安装进行说明,(因为apache是当前最流行的服务器)。你可以配置cakephp让它在LightHTTPD或者MicrosoftIIS服务器下运行。
1.下载一份CakePHP
2.配置你的服务器让它支持php(如果必要的话)
3.检查文件权限
安装
安装CakePHP可以简单到直接把它丢入你网页伺服机的主目录中,也可以复杂并如你希望般的弹性.在这部分我们将含括三种安装方式:开发模式,实际应用与高级安装.
1.开发模式:简单又快速,URLs中将包含CakePHP的安装目录,并不十分安全.
2.实际应用:必须调试伺服机之主目录,简洁的URLs,非常安全.
3.高级安装:通过一些调试,能让你把CakePHP主程式放在指定的地方,更可能让不同的CakePHP分享同样的CakePHP主程式.
配置
配置CakePHP应用程序是一件很有意思的事情。在你安装完CakePHP之后,创建一个基本的web应用程序只需要你配置一下数据库
然而,还有很多其他可选的配置用于适用CakePHP更高级的一些特性。你可以通过继承的方法为CakePHP核心增加功能、配置你自己的路由,或者定义你自己的映射。
控制器(Controllers)
控制器是用来控制逻辑的。通常,控制器会来控制一个独立的模型。举例,如果你要建立一个在线的面包店,你要有RecipesController和IngredientsController这两个控制器来控制食谱(Recipe)和配料(Ingredient)。在CakePHP会以复数的方式命名控制器。
RecipesController控制Recipe模型,ProductsController控制Product模型,依此类推。
一般我们所创建的控制类都继承CakePHP的AppController类。AppController继承自Controller类AppController在/app/app_controller.php文件里定义,它包含很多函数,你的应用程序里面所有的控制器类都要共享这些函数。Appcontroller类的父类Controller类在CakePHP标准库中定义cakephp。
控制器里的函数通常都会跟动作(action)关联。Action是用来显示视图(View)的控制器的函数。一个action就是控制器的一个单独的函数。
当一个URL请求匹配和控制器的动作匹配的时候,CakePHP的分发器调用相应的动作完成这个请求。
组件(Components)
组件是封装了一定逻辑处理的,可以在控制器间共享使用的包。当你发现你总是需要在不同的控制器间来回拷贝代码的时候,也许就是时候把这些可以共有的代码打个包,写成组件了。
CakePHP也提供了很多很好用的内置组件:
Security、Sessions、Accesscontrollists、Emails、Cookies、Authentication、Requesthandling
模型(Models)
模型是数据的表现,在CakePHP中被用来进行数据的访问。通常情况下一个模型对应一张数据库表,不过也可以用来访问其他的数据容器,比如文件,LDAP记录,iCal事件或者CSV文件的行。
一个模型可以与其他的模型建立相互的关系。比如,一张食谱可能会有一位作者作为其要素之一。
行为(Behaviors)
模块的行为是一种用来组织CakePHP模块里定义的某些功能的方法.它使我们可以把那些不是与模块直接相关但又需要的逻辑独立出来。通过提供一种简单但强大的方法来扩展模块,行为(Behaviors)允许我们通过简单地定义一个类变量来加入方法。这就是行为(Behaviors)如何允许模块去掉所有额外的体重,比如可能不是他们正在建模的商业合同的一部分,或是另一个模块才需要的并且可以被推测出来的部分。
举个例子,比如一个模块,它允许我们取得数据库里用来存关于树的信息结构数据。在一个树里删除、新增和迁移结点并不像删除、插入和修改表中的一行数据那样简单。很多个记录可能需要被更新随着结点的移动。相比在每个模块中建立这些树操作的方法,我们可以简单地告诉模块去使用TreeBehavior,或者更正式地来说,我们告诉我们的模块,让它们像一个树一样来行为。这就是所谓的追加一个行为到模块。只需要用一行代码,我们的CakePHP模块就获得了一整套的方法,从而使它可以根据它的结构来互相操作。
数据源
数据源是连接模型和其所代表的数据之间的桥梁。多数情况下,数据被存储在像MySQL,PostgreSQL,或者MSSQL等关系数据库中。CakePHP本身集成了大部分的既有数据库的特定数据源(参考cake/libs/model/datasources/dbo/中的dbo_*等类库文件),为了方便把这些数据源在此做个简单的列表:
1.dbo_mssql.php
2.dbo_mysql.php
3.dbo_mysqli.php
4.dbo_oracle.php
5.dbo_postgres.php
6.dbo_sqlite.php
视图(View)
CakePHP的视图层是展现给用户看到的部分。多数情况下视图应该是供浏览器使用的(X)HTML文档,但也可能是提供给Flash组件的AMF数据,或者通过SOAP响应服务器端应用程序,甚至发送给用户的CSV文件。
CakePHP视图使用PHP文本编写,默认扩展名.ctp(意为CakePHPTemplate)。这些文件涵盖了从控制器接收数据并按指定格式呈现给用户的所有表现逻辑。
视图文件存放在/app/views/目录下,在以控制器名称命名的文件夹中,以正访问的action名称命名的文件。例如,Products控制器中有一个view()action,那么与之对应的视图文件应该就是/app/views/products/view.ctp。
助手(Helper)
助手(Helper)是类似组件的类,用于你的应用程序的表现层里。它们包括了一些视图(view),元素(element)或布局(layout)共用的表现层逻辑。
脚手架(Scaffolding)
应用程序脚手架是一种允许开发人员快速定义和创建查、删、改、增程序(CRUD)的技术。CakePHP的脚手架还允许开发人员定义对象之间如何相互联合,以及创建和取消它们之间的关联。
创建脚手架所需要的全部只不过是一个model以及它的控制器。只要在控制器中设置了$scaffold变量,基本上就搞定了。
CakePHP的脚手架那是相当的酷。它可以让你在几分钟之内创建一个基本的CRUD程序出来。如此之酷你可能会将其用于产品环境中去。尽管我们也认为它很酷,但请你一定要认识到脚手架嘛。。。嗯。。。始终只是个脚手架。它拥有一个大致的结构,这样可以让你在项目初期能够快速起步。这并不意味着它很灵活,而是说它只是起步时的一个临时途径。当你发现需要自定义逻辑和视图的时候,也就是该拆除脚手架开始写代码的时候了。CakePHP的Bake控制台,在下一节我们会讲到,是非常重要的下一步:它能够生成多数当前脚手架功能相同的代码。
脚手架在WEB程序早期的时候是一个不错的选择。数据库设计初期会经常改动,在设计过程早期这是相当正常的现象。但有个负面作用:WEB开发人员讨厌创建了表单但却看不到实际的应用。为了减轻开发人员的压力,CakePHP已经内置了脚手架。脚手架分析数据表,并且创建标准的带添加、删除和编辑按钮的列表,编辑用的标准表单以及检视数据库单条记录的视图。
插件(Plugins)
CakePHP允许将创建的控制器、模型和视图联合起来打包发布,作为其它CakePHP程序可以使用的插件。在应用程序中有比较棒的用户管理模块?或者简单的博客?抑或webservices模块?将它打包成插件就可以在其它程序中使用了。
插件与安装它的应用程序之间最主要的联系是应用程序的配置(如数据库连接等等)。否则,它只会对它自己的领空生效,就像一个独立的应用程序一样。