`
天梯梦
  • 浏览: 13731097 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

CakePHP 中文手册

阅读更多

基本概念

Section1 简介

 

    本章节篇幅很短,简单的介绍一下MVC概念以及在cake中是如何实现的。如果你对MVC模式很陌生,这个章节将会非常适合你。我们由 常规的MVC概念开始我们的讨论,然后用我们的方式在CakePHP中使用MVC模式,并且展示几个简单的示例。

 

Section 2 MVC模式

 

[TODO 考虑到MVC模式是必需过桥技能,所以建议还是先看一下相关文章,原文很简单,最后补上望海涵]

 

Section 3 Cake目录结构一览

 

当你解压缩Cake后,会发现有3个主目录

 

  • app
  • cake
  • vendors

cake目录下是核心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             - 服务器端的第三方类库
 

安装CakePHP

Section 1 简介

 

现在你已经了解了每一件事情,包括系统的结构和整个类库的目的,或者说你略过了上述章节,因为你对这些资料并不感兴趣只是希望快点开始工作。 Anyway 你已经摩拳擦掌准备完毕了。

这个章节来介绍了哪些是必须被安装到服务器上的,不同的配置方案,如何下载并安装CakePHP,访问默认页面,以及一些 troubleshooting以备一些意外情况的发生。

 

Section 2 安装必需

 

[TODO 一些译者认为比较基础的内容暂时优先级设为低 完美版释出时会补上]

 

Section 3 安装CakePHP

 

[TODO]

 

Section 4 设置CakePHP

 

第一种设置方案仅推荐使用在开发环境下,因为它不是最安全的方案。第二种方案考虑了更多的安全性问题因而可以放心的使用在生产环境下。

 

注意:/app/tmp 目录必须具有写权限

 

开发环境设置

 

对于开发环境来说,我们可以把整个Cake目录放置在DocumentRoot下:

 

/wwwroot
    /cake
        /app
        /cake
        /vendors
        .htaccess
        index.php
			
 

 

这样的设置方案下,你的URL会如下这般(假设你使用了mod_rewrite):
www.example.com/cake/controllerName/actionName/param1/param2

 

生产环境设置

 

使用生产环境配置,你必须拥有修改Web Server DocumentRoot的权限。那样的话,整个域就如同一个CakePHP应用一般。

生产环境配置使用如下目录结构

 

 

 

../path_to_cake_install
    /app
        /config
        /controllers
        /models
        /plugins
        /tmp
        /vendors
        /views
        /webroot <-- 这将是你新的DocumentRoot
        .htaccess
        index.php
    /cake
    /vendors
    .htaccess
    index.php
 

 

 

建议修改Apache的配置文件如下:
DocumentRoot /path_to_cake/app/webroot

 

 

这样的配置下,你的URL将会如下这般:
http://www.example.com/controllerName/actionName/param1/param2

 

高级设置

 

在有些情况下,你希望能够将Cake应用的目录放在磁盘不同目录下。这可能是因为虚拟主机的限制,或者你希望多个app应用能够共享同一个 Cake Lib。

对于一个Cake应用,有3个主要组成部分:

 

 

1.
      CakePHP核心Lib - /cake目录下      
      
   2.      
      你的应用的代码(例如:controllers, models, layouts and views) - /app目录下      
      
   3.      
      你的应用web目录下的文件 (例如 图片 js脚本以及css样式文件等) - /app/webroot 目录下	
			
 

 

这3个目录都可以放置在磁盘的任意位置,但是webroot目录必须是web server可以访问的。你甚至可以把webroot目录移出app目录,只要你告诉Cake你把它们放到哪里去了。

 

你需要修改/app/webroot/index.php来完成配置(和Cake一起分发)。你需要修改3个常量:ROOT, APP_DIR, and CAKE_CORE_INCLUDE_PATH。

 

 

 

 1.
      ROOT 为包含app目录的根路径      
   2.
      APP_DIR app目录路径      
   3.
      CAKE_CORE_INCLUDE_PATH Cake核心Lib目录
      
      你的应用web目录下的文件 (例如 图片 js脚本以及css样式文件等) - /app/webroot 目录下	
 

 

 

这是范例:

 

 

/app/webroot/index.php (partial, comments removed)
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.
      我希望Cake Lib能够被共享,所以放在user/lib/cake下 (译注:作者都是linux配置,windows环境下随便放放吧)
      
   2.
      Cake webroot 目录为/var/www/mysite/。      
      
   3.
      程序文件目录为/home/me/mysite。
 

 

 

下面为具体的目录结构,不再赘述

 

 

/home
    /me
        /mysite                  <-- Used to be /cake_install/app
            /config
            /controllers
            /models
            /plugins
            /tmp
            /vendors
            /views
            index.php
/var
    /www
        /mysite                  <-- Used to be /cake_install/app/webroot
            /css
            /files
            /img
            /js
            .htaccess
            css.php
            favicon.ico
            index.php
/usr
    /lib
        /cake                    <-- Used to be /cake_install/cake
            /cake
                /config
                /docs
                /libs
                /scripts
                app_controller.php
                app_model.php
                basics.php
                bootstrap.php
                dispatcher.php
            /vendors
 

 

 

我按照上面的目录结构修改/var/www/mysite/index.php如下:

我建议使用'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.           


Section 5 配置Apache的mod_rewrite

 

CakePHP和mod_rewrite一同工作时会是最佳体验,我们发现有部分用户在他们的系统上不能让每件事情都很好的运作起来。所以我罗 列了一些可能会有帮助的信息:

 

 

 

 

1.
      首先确认.htaccess覆写是被允许的:在apache配置文件中检查<Directory>配置下的AllowOverride是不是设置为All。

   2.
      确认你修改的是server的配置文件而不是当前用户或者特定站点的配置文件。
      
   3.
      有的时候,可能你得到的CakePHP副本缺少了必须的.htaccess文件。因为有的操作系统会将以.开头的文件视作隐藏文件,因而不会拷贝它们。确定你的CakePHP副本是我们网站上下载或者是我们的SVN repository上checkout的。
      
   4.
      确认你是否成功加载了mod_rewrite!察看配置文件中是否有'LoadModule rewrite_module libexec/httpd/mod_rewrite.so' 和 'AddModule mod_rewrite.c'。
      
   5.
      如果你把Cake安装在一个用户目录下的话(http://example.com/~myusername/),你需要修改根目录中的.htaccess文件,加上一行"RewriteBase /~myusername/"。
      
   6.
      如果你发现URL后面加上了冗长乏味的sessionID的话
       (http://example.com/posts/?CAKEPHP=4kgj577sgabvnmhjgkdiuy1956if6ska)
      你需要加上一行"php_flag session.trans_id off"就ok了。
 

Section 6 确认Cake可以出炉了

 

好吧,让我们来看看这个baby吧。鉴于你选择的配置方式,你可以通过 http://www.example.com or http://www.example.com/ 来访问它。你会看到CakePHP的默认主页,和一个简短的通知消息,描述了你当前的数据库连接状态。

祝贺你!你已经完成了开始第一个CakeApp的准备工作。

 

 

分享到:
评论

相关推荐

    cakephp 中文手册

    这个“cakephp 中文手册”是专为中文开发者设计的,提供了详尽的文档和指南,帮助开发者快速理解和掌握蛋糕PHP的核心概念和技术。 ### 一、模型-视图-控制器(MVC) 1. **模型(Model)**:模型层是应用的数据层,...

    cakephp中文手册API

    这个"cakephp中文手册API"是针对CakePHP框架的中文参考文档,对于初学者来说,是理解和掌握该框架的关键资源。 1. **MVC模式**: MVC模式是软件设计中的一个经典模式,将应用程序分为模型(Model)、视图(View)...

    cakephp中文手册

    总之,无论你是初学者还是经验丰富的开发者,这份“CakePHP中文手册”都将是你探索和掌握这个强大框架的宝贵工具,帮助你在PHP开发领域更上一层楼。通过深入学习和实践,你将能够高效地构建出稳定、安全且易于维护的...

    mvc,mvc手册cakephp中文手册

    标题中的“mvc,mvc手册cakephp中文手册”表明这是一个关于Model-View-Controller(MVC)架构模式的资源,特别是针对CakePHP框架的中文手册。描述部分的重复强调了这一点,暗示这个压缩包可能包含一份详尽的、面向...

    CakePHP中文手册

    CakePHP中文手册作为开发者的重要参考资料,包含了全面的API文档、教程、最佳实践以及常见问题解答,帮助开发者更好地理解和运用CakePHP。 在**中文手册**中,你将找到以下关键知识点: 1. **安装与配置**:包括...

    CakePHP 中文手册.rar

    CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。

    cakephp中文手册.pdf

    《CakePHP 中文手册》是针对 CakePHP 框架的详细指南,旨在帮助开发者理解和应用这个基于 Model-View-Controller (MVC) 架构的 PHP 开发工具。手册内容涵盖基本概念、MVC 模式以及 CakePHP 的目录结构。 **基本概念...

    cakephp中文手册PDF版

    ### CakePHP中文手册知识点概述 #### 一、基本概念与MVC模式介绍 - **MVC模式概述**:MVC(Model-View-Controller)是一种软件架构设计模式,旨在将业务逻辑、用户界面和数据存储这三个核心功能区分开来。在...

    cakephp 完全手册 chm版本

    cakephp完全手册,chm版本的。英文。希望爱好cakephp的朋友喜欢。

    cakePHP 中文手册

    CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。 1.活跃友好的社区 2.灵活的许可协议(Licensing) 3.兼容PHP4和PHP5 4.数据库交互和简单查询的集成 5.应用程序Scaffolding 6....

    cakephp 1.3.x 中文手册

    cakephp 1.3.x 中文手册,部分英文没有翻译,随后翻译。

    CakePHP 3.5 开发手册文档 CakePHP Cookbook Documentation Release 3.5/共900页 PDF

    ### CakePHP 3.5 开发手册文档概览与核心知识点解析 #### 一、CakePHP简介 **CakePHP** 是一个用 PHP 编写的快速、简洁的开发框架。它采用了 MVC (Model-View-Controller) 架构模式,旨在简化 Web 应用程序的开发...

    CakePHP中文帮助手册(CHM)

    CakePHP是一款非常优秀的PHP的MVC开发框架,它也是模仿Ruby on rails的思想,尽量约定好,减少配置。本文档是其中文帮助手册,希望对大家有用

    CakePHP manual zh 中文手册

    **蛋糕PHP(CakePHP)中文手册** 蛋糕PHP是一款基于MVC(模型-视图-控制器)设计模式的开源PHP框架,用于快速开发Web应用程序。它遵循简洁、实用的原则,为开发者提供了一套强大的工具和约定,使代码更易读、易维护...

    CakePHP-中文手册(全)

    CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。

Global site tag (gtag.js) - Google Analytics