高级安装
使用PEAR安装程序安装的CakePHP
CakePHP发布了PEAR包,你可以使用PEAR安装程序进行安装。 用PEAR安装程序安装可以简化跨多个应用程序共享CakePHP库。用PEAR安装CakePHP,你需要按照下面的方式去做:
pear channel-discover pear.cakephp.org
pear install cakephp/CakePHP
在某些系统上安装带PEAR库将需要sudo。
使用PEAR安装CakePHP后,如果PEAR配置正确,你应该能够使用Cake命令来创建新的应用程序。由于CakePHP位置在PHP的 include_path 中你不需要做任何其他更改。
关于 Composer CakePHP 安装
Composer 是一个依赖管理工具,在PHP 5.3 以上的版本中。 它解决了很多PEAR安装程序有问题,并简化了管理多个版本库。由于CakePHP的发布一个PEAR包你可以使用 Composer 安装CakePHP。在安装CakePHP中,你需要设置一个composer.json文件。一个CakePHP应用程序中的composer.json文件看起来像下面这样:
{
"name": "example-app",
"repositories": [
{
"type": "pear",
"url": "http://pear.cakephp.org"
}
],
"require": {
"pear-cakephp/cakephp": ">=2.4.0"
},
"config": {
"vendor-dir": "Vendor/"
}
}
保存此JSON到你的项目根目录下的composer.json文件中。接着下载composer.phar文件到您的项目。在你已经下载的Composer安装CakePHP。在composer.json相同的目录中运行以下命令:
$ php composer.phar install
一旦Composer运行完毕后,你应该有一个目录结构看起来像:
example-app/
composer.phar
composer.json
Vendor/
bin/
autoload.php
composer/
pear-pear.cakephp.org/
你现在就可以生成你的应用程序框架其他部分:
$ Vendor/bin/cake bake project <path to project>
默认使用 bake 进行硬编码 CAKE_CORE_INCLUDE_PATH 。 为了使您的应用程序更加简洁,你应该修改 webroot/index.php ,改变 CAKE_CORE_INCLUDE_PATH 成为一个相对路径:
define(
'CAKE_CORE_INCLUDE_PATH',
ROOT . '/Vendor/pear-pear.cakephp.org/CakePHP'
);
如果您计划创建单元测试您的应用程序,您还需要改变webroot/test.php文件
如果你安装任何其他的库,Composer需要设置自动载入器,并且改变Composer的自动载入器。在你的 Config/bootstrap.php 文件中添加如下内容:
// Load Composer autoload.
require APP . '/Vendor/autoload.php';
// Remove and re-prepend CakePHP's autoloader as Composer thinks it is the
// most important.
// See: http://goo.gl/kKVJO7
spl_autoload_unregister(array('App', 'load'));
spl_autoload_register(array('App', 'load'), true, true);
你现在应该已经通过Composer安装了CakePHP中功能应用。 一定要保留composer.json和composer.lock文件与源代码的其它部分。
CakePHP共享库与多个应用程序
有些情况下有可能是您希望将CakePHP核心库的文件夹放在不同的目录中。这可能是由于虚拟主机的限制,或者你只是希望让所有的应用程序共享相同CakePHP库。本节将介绍如何让你的CakePHP目发布到不同的系统目录中。
首先,要了解Cake应程序三个主要部份:
- CakePHP的核心库,在 /lib/Cake目录中。
- 您的应用程序代码,在 /app目录中。
- 应用程序的根目录,通常在 /app/webroot目录中。
每个目录可位于文件系统上的任何地方,唯一的例外是Webroot,他需要由Web服务器访问。你可以将 webroot 放在app文件夹外,你只要告诉CakePHP你在那里。
要配置您的CakePHP安装,你需要做一些修改以下文件。
- /app/webroot/index.php
- /app/webroot/test.php (如果你要使用单元测试)
- ROOT 应用程序根目录,其中包含您的应用程序文件夹的路径。
- APP_DIR 应用程序文件夹目录。
- CAKE_CORE_INCLUDE_PATH CakePHP库文件夹的路径。
让我们通过一个运行实例,你可以看到一个比较合理的应用安装。想象一下,我想建立CakePHP的工作如下:
- CakePHP的核心库将被放置在 /usr/lib/cake目录中。
- 我的应用程序的webroot目录将是 /var/www/mysite/。
- 我的应用程序的app目录将是 /home/me/myapp。
// /app/webroot/index.php (partial, comments removed)
if (!defined('ROOT')) {
define('ROOT', DS . 'home' . DS . 'me');
}
if (!defined('APP_DIR')) {
define ('APP_DIR', 'myapp');
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', DS . 'usr' . DS . 'lib');
}
这是推荐使用DS常数,而不是斜杠分隔文件路径。 你可能会遇到分隔符错误, 这可以防止任何缺少文件错误,它使你的代码更容易移植。