cakephp中文手册

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

CakePHP2007-1-20欢迎转载留个这里的链接就成,任何建议请发至zhengkanjie@gmail.com,你的建议是我的动力,谢谢基本概念Section1简介本章节篇幅很短,简单的介绍一下MVC概念以及在cake中是如何实现的。如果你对MVC模式很陌生,这个章节将会非常适合你。我们由常规的MVC概念开始我们的讨论,然后用我们的方式在CakePHP中使用MVC模式,并且展示几个简单的示例。Section2MVC模式[TODO考虑到MVC模式是必需过桥技能,所以建议还是先看一下相关文章,原文很简单,昀后补上望海涵]Section3Cake目录结构一览当你解压缩Cake后,会发现有3个主目录•app•cake•vendorscake目录下是核心lib,通常情况下你不要接触它们。app目录下是你的程序文件所存放的位置。将app目录和cake目录分开,从而可以使多个应用共享一个cake类库。同样的也使得CakePHP的升级变得很容易:你只需要下载昀新的版本并且覆盖原来的类库就可以了。不用担心会覆盖掉你的应用程序文件。你可以使用vendors目录来存放一些第三方类库。后面的章节将会讲到更多关于vendors的内容,一个昀基本的概念就是你可以非常方便的通过vendor()方法来调用vendor类库。让我们来看一下完整的目录结构:/app/config-配置文件目录,包括Database,ACL等/controllers-Controllers文件/components-Components文件/index.php-允许你将app目录部署为DocumentRoot(译注:参见Apache相关配置)/models-Model文件/plugins-Plugins文件/tmp-Cache和日志存放处/vendors-你的应用中使用到的第三方类库/views-视图文件/elements-视图元素文件/errors-自定义错误页面/helpers-Helpers文件/layouts-页面布局文件/pages-静态页面文件/webroot-web根目录/css/files/img/js/cake-核心类库,请不要随意修改任何文件,除非你确信你有这个能力index.php/vendors-服务器端的第三方类库安装CakePHPSection1简介现在你已经了解了每一件事情,包括系统的结构和整个类库的目的,或者说你略过了上述章节,因为你对这些资料并不感兴趣只是希望快点开始工作。Anyway你已经摩拳擦掌准备完毕了。这个章节来介绍了哪些是必须被安装到服务器上的,不同的配置方案,如何下载并安装CakePHP,访问默认页面,以及一些troubleshooting以备一些意外情况的发生。Section2安装必需[TODO一些译者认为比较基础的内容暂时优先级设为低完美版释出时会补上]Section3安装CakePHP[TODO]Section4设置CakePHP第一种设置方案仅推荐使用在开发环境下,因为它不是昀安全的方案。第二种方案考虑了更多的安全性问题因而可以放心的使用在生产环境下。注意:/app/tmp目录必须具有写权限开发环境设置对于开发环境来说,我们可以把整个Cake目录放置在DocumentRoot下:/这样的设置方案下,你的URL会如下这般(假设你使用了mod_rewrite):生产环境设置使用生产环境配置,你必须拥有修改WebServerDocumentRoot的权限。那样的话,整个域就如同一个CakePHP应用一般。生产环境配置使用如下目录结构../path_to_cake_install/app/config/controllers/models/plugins/tmp/vendors/views/webroot--这将是你新的DocumentRoot.htaccessindex.php/cake/vendors.htaccessindex.php建议修改Apache的配置文件如下:DocumentRoot/path_to_cake/app/webroot这样的配置下,你的URL将会如下这般:高级设置在有些情况下,你希望能够将Cake应用的目录放在磁盘不同目录下。这可能是因为虚拟主机的限制,或者你希望多个app应用能够共享同一个CakeLib。对于一个Cake应用,有3个主要组成部分:1.CakePHP核心Lib-/cake目录下2.你的应用的代码(例如:controllers,models,layoutsandviews)-/app目录下3.你的应用web目录下的文件(例如图片js脚本以及css样式文件等)-/app/webroot目录下这3个目录都可以放置在磁盘的任意位置,但是webroot目录必须是webserver可以访问的。你甚至可以把webroot目录移出app目录,只要你告诉Cake你把它们放到哪里去了。你需要修改/app/webroot/index.php来完成配置(和Cake一起分发)。你需要修改3个常量:ROOT,APP_DIR,andCAKE_CORE_INCLUDE_PATH。1.ROOT为包含app目录的根路径2.APP_DIRapp目录路径3.CAKE_CORE_INCLUDE_PATHCake核心Lib目录你的应用web目录下的文件(例如图片js脚本以及css样式文件等)-/app/webroot目录下这是范例:/app/webroot/index.php(partial,commentsremoved)if(!defined('ROOT')){define('ROOT',dirname(dirname(dirname(__FILE__))));}if(!defined('APP_DIR')){define('APP_DIR',basename(dirname(dirname(__FILE__))));}if(!defined('CAKE_CORE_INCLUDE_PATH')){define('CAKE_CORE_INCLUDE_PATH',ROOT);}下面通过一个具体的例子来解释我的配置1.我希望CakeLib能够被共享,所以放在user/lib/cake下(译注:作者都是linux配置,windows环境下随便放放吧)2.Cakewebroot目录为/var/。3.程序文件目录为/home/me/mysite。下面为具体的目录结构,不再赘述/home/me/mysite--Usedtobe/cake_install/app/config/controllers/models/plugins/tmp/vendors/viewsindex.php/var/我按照上面的目录结构修改/var/如下:我建议使用'DS'常量代替路径中的斜杠。这样会保证你不会写错导致找不到文件。(考虑跨平台)1.if(!defined('ROOT'))2.{3.define('ROOT',DS.'home'.DS.'me');4.}5.6.if(!defined('APP_DIR'))7.{8.define('APP_DIR','mysite');9.}10.11.if(!defined('CAKE_CORE_INCLUDE_PATH'))12.{13.define('CAKE_CORE_INCLUDE_PATH',DS.'usr'.DS.'lib'.DS.'cake');14.}15.Section5配置Apache的mod_rewriteCakePHP和mod_rewrite一同工作时会是昀佳体验,我们发现有部分用户在他们的系统上不能让每件事情都很好的运作起来。所以我罗列了一些可能会有帮助的信息:1.配置下的首先确认.htaccess覆写是被允许的:在apache配置文件中检查DirectoryAllowOverride是不是设置为All。2.确认你修改的是server的配置文件而不是当前用户或者特定站点的配置文件。3.有的时候,可能你得到的CakePHP副本缺少了必须的.htaccess文件。因为有的操作系统会将以.开头的文件视作隐藏文件,因而不会拷贝它们。确定你的CakePHP副本是我们网站上下载或者是我们的SVNrepository上checkout的。4.确认你是否成功加载了mod_rewrite!察看配置文件中是否有'LoadModulerewrite_modulelibexec/httpd/mod_rewrite.so'和'AddModulemod_rewrite.c'。5.如果你把Cake安装在一个用户目录下的话(~myusername/),你需要修改根目录中的.htaccess文件,加上一行RewriteBase/~myusername/。6.如果你发现URL后面加上了冗长乏味的sessionID的话(=4kgj577sgabvnmhjgkdiuy1956if6ska)你需要加上一行php_flagsession.trans_idoff就ok了。Section6确认Cake可以出炉了好吧,让我们来看看这个baby吧。鉴于你选择的配置方式,你可以通过来访问它。你会看到CakePHP的默认主页,和一个简短的通知消息,描Section1数据库配置app/config/database.php这个文件包含了所有的数据库配置。新安装的Cake是没有datebase.php这个文件的,你需要从database.php.default复制一份过来并重新命名,内容如下:述了你当前的数据库连接状态。祝贺你!你已经完成了开始第一个CakeApp的准备工作。配置CakePHP1.app/config/database.php2.var$default=array('driver'='mysql',3.'connect'='mysql_connect',4.'host'='localhost',5.'login'='user',6.'password'='password',7.'database'='project_name',8.'prefix'='');9.10.和大多数php程序一样,修改一下你的配置就ok了。11.关于前縀要提醒一下:这里定义的前縀将会用在任何一处由Cake发起的对数据表的SQL操作中。你在这里定义过后不能再在其它地方重新定义它。假设你的服务器只给了你一个单独的database,它同样可以让你遵循Cake的表名约定。注意:对于HABTM(has-and-belongs-to-many),也就是多对多关联表,你只需要添加一次前縀prefix_apples_bananas,而不是prefix_apple

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功