当前位置: 首页 > 工具软件 > CakePHP > 使用案例 >

CakePHP高级安装

东郭赞
2023-12-01

高级安装

使用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应程序三个主要部份:

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

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

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

  • /app/webroot/index.php
  • /app/webroot/test.php (如果你要使用单元测试)
有迹象表明,你需要编辑三个常量:  ROOT APP_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重写章节
 类似资料: