CakePHP高级安装

来源:互联网 发布:阿里云改ssh端口 编辑:程序博客网 时间:2024/06/11 01:12

高级安装

使用PEAR安装程序安装的CakePHP

CakePHP发布了PEAR包,你可以使用PEAR安装程序进行安装。 用PEAR安装程序安装可以简化跨多个应用程序共享CakePHP库。用PEAR安装CakePHP,你需要按照下面的方式去做:

pear channel-discover pear.cakephp.orgpear 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/kKVJO7spl_autoload_unregister(array('App', 'load'));spl_autoload_register(array('App', 'load'), true, true);

你现在应该已经通过Composer安装了CakePHP中功能应用。 一定要保留composer.json和composer.lock文件与源代码的其它部分。

CakePHP共享库与多个应用程序


有些情况下有可能是您希望将CakePHP核心库的文件夹放在不同的目录中。这可能是由于虚拟主机的限制,或者你只是希望让所有的应用程序共享相同CakePHP库。本节将介绍如何让你的CakePHP目发布到不同的系统目录中。

首先,要了解Cake应程序三个主要部份:

  1. CakePHP的核心库,在 /lib/Cake目录中。
  2. 您的应用程序代码,在 /app目录中。
  3. 应用程序的根目录,通常在 /app/webroot目录中。

每个目录可位于文件系统上的任何地方,唯一的例外是Webroot,他需要由Web服务器访问。你可以将 webroot 放在app文件夹外,你只要告诉CakePHP你在那里。

要配置您的CakePHP安装,你需要做一些修改以下文件。

  • /app/webroot/index.php
  • /app/webroot/test.php (如果你要使用单元测试)
有迹象表明,你需要编辑三个常量: ROOTAPP_DIR, 和 CAKE_CORE_INCLUDE_PATH

  • ROOT 应用程序根目录,其中包含您的应用程序文件夹的路径。
  • APP_DIR 应用程序文件夹目录。
  • CAKE_CORE_INCLUDE_PATH CakePHP库文件夹的路径。

让我们通过一个运行实例,你可以看到一个比较合理的应用安装。想象一下,我想建立CakePHP的工作如下:

  • CakePHP的核心库将被放置在 /usr/lib/cake目录中。
  • 我的应用程序的webroot目录将是 /var/www/mysite/。
  • 我的应用程序的app目录将是 /home/me/myapp。
鉴于这种类型的设置,我需要编辑webroot/index.php文件(在这个例子中,将修改/ var/www下面的/mysite/index.php文件)看起来像下面这样:

// /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常数,而不是斜杠分隔文件路径。你可能会遇到分隔符错误,这可以防止任何缺少文件错误,它使你的代码更容易移植。

Apache 和 mod_rewrite (.htaccess)

这部分被转移到 URL重写章节
0 0
原创粉丝点击