【发布时间】:2012-03-27 05:35:56
【问题描述】:
我有一个使用 Cake PHP 以非常 MVC 方式编写的应用程序。我现在需要从应用程序中执行一个 shell 脚本。 Cake PHP 是否提供了一种执行 shell 脚本的方法? IE。有没有内置的东西可以做到这一点?我正在使用 CakePHP 2。
非常感谢:)。
【问题讨论】:
标签: cakephp cakephp-2.0
我有一个使用 Cake PHP 以非常 MVC 方式编写的应用程序。我现在需要从应用程序中执行一个 shell 脚本。 Cake PHP 是否提供了一种执行 shell 脚本的方法? IE。有没有内置的东西可以做到这一点?我正在使用 CakePHP 2。
非常感谢:)。
【问题讨论】:
标签: cakephp cakephp-2.0
是的,您可以轻松地在应用程序中手动执行 shell 脚本。 在 2.x 中,这比在 1.3 等中更容易:
App::uses('MyShell', 'Console/Command');
$this->My = new MyShell();
$this->My->myMethod();
我用它来测试我在测试用例中编写的 shell。但它也可以在应用程序中工作:)
与任务类似。 我在我的 TranslatePlugin 中使用它来直接从控制器/模型级别执行具有一些特定设置的核心的 ExtractTask。
请注意,如果您有一些特定的 shell 脚本,您可能必须添加/传递一些手动 ConsoleOutput 类。 如果可能,最好将您的代码移动到任务(而不是外壳!)。 更好的是,将它移动到 Lib 或其他可以从 shell 和普通应用程序代码分派的通用文件中。这将是关于这个主题的最干净的方法。
【讨论】:
不直接,不。顾名思义,Shell 脚本旨在从 shell 而非您的应用程序中运行。
尽管,在 deizel 对this question 的回答中,有一些提示可以让您的应用与您的 shell 交互。
【讨论】: