我是Shell
的新手,使用 CakePHP ,我无法注意到有2个cake
控制台应用程序:一个在app/Console/cake
,另一个在lib/Console/cake
是 CakePHP核心中的第二个。
到目前为止,我已经使用lib/Console/cake bake -app /path/to/app
来烘焙一些 MVC 类,但我之前从未使用过app/Console/cake
。此外,我的环境变量中配置了lib/Console/cake
。
我想知道这些2的区别,何时使用其中一个以及为什么。
注意:我将我的核心文件夹移到了另一个目录,所以app/Console/cake
自然不会找到ShellDispatcher
,我应该修改哪一行来设置核心的新路径库中?
答案 0 :(得分:1)
相同,但你应该使用app里面的一个文件夹:
cd app/
./Console/cake bake
要更改默认文件夹结构和配置,您必须编辑这些文件:
/app/webroot/index.php
/app/webroot/test.php
并取消注释此行放置您的核心文件夹位置:
// /usr/lib/mylocation
define('CAKE_CORE_INCLUDE_PATH', DS . 'usr' . DS . 'lib' . DS . 'mylocation');
答案 1 :(得分:1)
两个可执行文件之间的区别在于one derives the app location from the current working directory和the other is application specific。这可以突出显示如下:
www-data @ dev [ /tmp/cakephp ] (master=)
-> app/Console/cake
Welcome to CakePHP v2.4.6 Console
---------------------------------------------------------------
App : app
Path: /tmp/cakephp/app/
---------------------------------------------------------------
-> cd anywhere
-> /tmp/cakephp/app/Console/cake
Welcome to CakePHP v2.4.6 Console
---------------------------------------------------------------
App : app
Path: /tmp/cakephp/app/
---------------------------------------------------------------
请注意,应用和路径未发生变化。
路径中的cake
如果路径中有/tmp/cakephp/lib/Cake/Console/
:
-> cd anywhere
-> cake
Welcome to CakePHP v2.4.6 Console
---------------------------------------------------------------
App : xxx
Path: **anywhere**
---------------------------------------------------------------
请注意,应用和路径会因执行命令时的位置而异。
如果你总是指定-app
标志,它们的功能会相同,但你会发现在你的路径中使用cake是有问题的,例如你在同一主机上有多个应用程序使用不同的版本CakePHP的。
如果移动了cake文件夹,则需要编辑的文件为:
$root
variable / include_path)只有第一个会影响cli的使用。