cakePHP入门

http://www.1x3x.net/cakephp/index.html   中文手册 version1.0 by Ken & Luxel

 

 

 

让我们来看一下完整的目录结构:

/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             - 服务器端的第三方类库

 

 

-------------------- 1 开发环境设置

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

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

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

 

 

 

-------------------- 2 生产环境设置

使用生产环境配置,你必须拥有修改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

 

 

--------------------3 高级设置

在有些情况下,你希望能够将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. }

 

 

 

 

你可能感兴趣的:(Web,应用服务器,PHP,css,cakephp)