从Cake PHP运行shell脚本

时间:2012-03-26 18:27:33

标签: cakephp cakephp-2.0

我有一个使用Cake PHP以非常MVC方式编写的应用程序。我现在需要从应用程序中执行shell脚本。 Cake PHP是否提供了执行shell脚本的方法?即有什么内置的可以做到这一点?我正在使用CakePHP 2。

非常感谢:)。

2 个答案:

答案 0 :(得分:10)

是的,您可以在应用程序中手动轻松执行shell脚本。 在2.x中,这比1.3等更容易:

App::uses('MyShell', 'Console/Command');
$this->My = new MyShell();
$this->My->myMethod();

我用它来测试我在测试用例中编写的shell。但它也适用于app:)

与任务类似。 我在我的TranslatePlugin中使用它来直接从控制器/模型级别执行一些特定设置来执行核心的ExtractTask。

请注意,如果您有一些特定的shell脚本,则可能必须添加/传递一些手动ConsoleOutput类。 如果可能的话,最好将代码移动到Task(而不是shell!)。 更好的是,将它移到Lib或其他通用文件中,您可以从shell和普通的应用程序代码中调度它们。这将是这个主题最干净的方法。

答案 1 :(得分:0)

不直接,不。 Shell脚本 - 顾名思义 - 意味着从shell运行而不是从您的应用程序中运行。

尽管如此,在deizel对this question的回答中,如何让你的应用与你的shell进行互动有一些指示。