CakePHP中的app / Console / cake vs lib / Console / cake

时间:2014-03-16 18:48:37

标签: php cakephp command-line-interface

我是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,我应该修改哪一行来设置核心的新路径库中?

2 个答案:

答案 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');

在这里查看手册: http://book.cakephp.org/2.0/en/installation/advanced-installation.html#sharing-cakephp-libraries-with-multiple-applications

答案 1 :(得分:1)

差异

两个可执行文件之间的区别在于one derives the app location from the current working directorythe 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/
---------------------------------------------------------------

来自不同路径的参考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文件夹,则需要编辑的文件为:

  • app / Console / cake.php($root variable / include_path)
  • app / webroot / index.php(ROOT常数)
  • app / webroot / test.php(ROOT常量)

只有第一个会影响cli的使用。