高级安装

    注解

    在一些操作系统中用 PEAR 命令安装类库需要 。

    使用 PEAR 安装 CakePHP 之后,如果 PEAR 配置正确,可以使用 cake 命令来创建新的应用程序。由于 CakePHP 已经被包含在 PHP 的 include_path 中,就不需要再做任何其它改动了。

    在开始之前你应当确保你的 PHP 版本是更新了的:

    1. php -v

    你最低也应当安装了 PHP 5.3.0 (CLI) 或更高版本。你的 web 服务器的 PHP 版本必须也是5.3.0 或更高版本,并且应当最好和命令行(CLI)的 PHP 版本相同。

    Composer 是一个适用于 PHP 5.3+ 的依赖管理工具,解决了 PEAR 安装程序的很多问题,并且简化了对类库的多个版本的管理。Packagist 是Composer 安装包的主要仓库。由于 CakePHP 也发布版本到 Packagist,故而可以使用 安装 CakePHP。

    1. mv composer.phar /usr/local/bin/composer
    • 在 Windows 上安装 Composer

    对于 Windows 系统,你可以从 下载 Composer 的Windows 安装程序。 Composer 的 Windows 安装程序更多的指示可以参阅 这里 的 README。

    创建 CakePHP 项目

    在安装 CakePHP 之前需要建立 composer.json 文件。CakePHP 应用程序的composer.json 可以象下面这样:

    把这段 JSON 保存在项目的 APP 目录中的 composer.json 文件中。接下来把composer.phar 文件下载到项目中。在 composer.json 所在的目录下运行如下命令:

    1. $ php composer.phar install

    一旦 Composer 运行结束,目录结构应当如下所示:

    1. composer.phar
    2. composer.json
    3. Vendor/
    4. bin/
    5. autoload.php
    6. composer/
    7. cakephp/

    现在可以生成应用程序骨架的其余部分:

    缺省情况下,bake 把 硬编码了。为了使应用程序更具移植性,应当修改 webroot/index.php ,将 CAKE_CORE_INCLUDE_PATH改为相对路径:

    1. define(
    2. 'CAKE_CORE_INCLUDE_PATH',
    3. ROOT . DS . APP_DIR . DS . 'Vendor' . DS . 'cakephp' . DS . 'cakephp' . DS . 'lib'
    4. );

    注解

    如果你计划为应用程序创建单元测试,你也需要对 webroot/test.php 做上面的修改。

    1. // 加载 Composer 的自动加载。
    2. require APP . 'Vendor/autoload.php';
    3. // 删除并重新优先添加 CakePHP 的自动加载,因为 Composer 认为这是最重要的。
    4. // 参看:http://goo.gl/kKVJO7
    5. spl_autoload_unregister(array('App', 'load'));
    6. spl_autoload_register(array('App', 'load'), true, true);

    现在这个用 Composer 安装的 CakePHP 应用程序应该可以运行了。注意确保 composer.json和 composer.lock 文件与其它源代码一起(添加到源码控制中)。

    在某些情况下,你会希望把 CakePHP 的目录放到文件系统的不同地方。这可能是因为共享主机的限制,或者你只是想让一些应用程序共享相同的 CakePHP 类库。本节将说明怎样把CakePHP 的目录分散到文件系统的的不同地方。

    首先,明确 Cake 的应用程序有三个主要部分:

    • CakePHP 核心类库,位于 /lib/Cake 目录。
    • 应用程序的代码,位于 /app 目录。
    • 应用程序的 webroot,通常位于 /app/webroot 目录。
      这里的每个目录,都可以放到文件系统的任何位置,除了 webroot,它必须位于 web 服务器能够访问到的地方。甚至可以将 webroot 目录移动到 app 目录外面,只要你告诉 CakePHP你把它放在了哪里。

    配置 CakePHP 的安装时,需要对下面的文件做一些修改。

    • /app/webroot/index.php
    • /app/webroot/test.php (如果你使用Testing 的功能。)
      有三个常量需要修改: ROOTAPP_DIR 和 。

    • ROOT 应当设置为包含你的 app 文件夹的目录路径。

    • APP_DIR 应当设置为 app 目录的目录名称(译注:即不包含前面的路径)。
    • CAKE_CORE_INCLUDE_PATH 应当设置为 CakePHP 类库目录的路径。
      让我们通过下面的例子,让你明白高级安装实际上是怎样的。设想我要象下面这样设置CakePHP:

    • CakePHP 的核心类库位于 /usr/lib/cake。

    • 应用程序的 app 目录是 /home/me/myapp。
      鉴于这种类型的设置,我需要编辑 webroot/index.php 文件(在本例中为/var/www/mysite/index.php),(让它)像下面这样:

    本节内容被移到 。