我有一个使用Cake PHP以非常MVC方式编写的应用程序。我现在需要从应用程序中执行shell脚本。 Cake PHP是否提供了执行shell脚本的方法?即有什么内置的可以做到这一点?我正在使用CakePHP 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进行互动有一些指示。