或许你想把与CakePHP相关的目录放在文件系统的其它位置。或许是因为虚拟主机的原因,或者可能是你有几个应用程序想要共用一个Cake函数库。这部分将讲述怎样在文件系统里扩展你的CakePHP目录。
首先,了解有关Cake应用程序的三个主要部分:
每个目录都可以被放到文件系统的任何位置,webroot目录除外,它在Web服务器下必须保持可用性。你也可以将webroot文件夹放到你想放置的地方,但你必须保证Cake能够识别它。
配置你的Cake安装,你需要在/app/webroot/index.php做一些修改。有三个常量需要你亲自编辑: ROOT, APP_DIR, 和 CAKE_CORE_INCLUDE_PATH。
ROOT 应该设置为包含你应该程序文件夹的目录。APP_DIR 应该被设置为应用程序文件夹的基址((base)name)。CAKE_CORE_INCLUDE_PATH 应该设置为CakePHP函数库的路径。让我们来做一个示例,这样你可以从实际中看到高级安装是怎样进行的。想像我正想要CakePHP这样工作:
给定这种类型的安装,我应该去编辑 webroot/index.php文件( /var/www/mysite/index.php中最后的部分, 在本示例当中)如下所示:
Plain Text View// /app/webroot/index.php (partial, comments removed)
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'me');
}
if (!defined('APP_DIR')) {
define ('APP_DIR', 'mysite');
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS);
}
// /app/webroot/index.php (partial, comments removed) if (!defined('ROOT')) { define('ROOT', DS.'home'.DS.'me');}if (!defined('APP_DIR')) { define ('APP_DIR', 'mysite');}if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS);} 推荐使用DS常量来定义路径,而不使用斜线“/”来定义路径。这样可以防止由于使用分隔符而导致文件丢失错误,同时这样还可以让你的代码更轻便。
在同一样系统中它可以用来使MVC类能够在应用程序问共享,如果你想让两个应用程序共一个控制器,你可以使用CakePHP的bootstrap.php来将附加的类带到视图中。
在bootstrap.php中, 定义某些特定的变量名来使CakePHP知道如何寻找其它MVC类的位置:
Plain Text View$viewPaths = array();
$controllerPaths = array();
$modelPaths = array();
$helperPaths = array();
$componentPaths = array();
$behaviorPaths = array();
$pluginPaths = array();
$vendorPaths = array();
$localePaths = array();
$shellPaths = array();
$viewPaths = array();$controllerPaths = array();$modelPaths = array();$helperPaths = array();$componentPaths = array();$behaviorPaths = array();$pluginPaths = array();$vendorPaths = array();$localePaths = array();$shellPaths = array();在额外类需要调用的时候这些特定的变量可以被设置为绝对的文件系统路径。确保每个路径都有斜线“/”作结尾。
| 最近读者 (登录后,您就出现在这里。这里登陆) | |||||||||
评论读取中...