2012-03-26 14 views
0

私は、Cake PHPを使って非常にMVC形式で書いたアプリケーションを持っています。私は今、アプリケーション内からシェルスクリプトを実行する必要があります。 Cake PHPはシェルスクリプトを実行する方法を提供していますか?私。これを行うために何かが組み込まれているのですか?私はCakePHP 2を使用しています。Cake PHPからシェルスクリプトを実行しています

多くのおかげで:)。

答えて

10

はい、アプリケーション内からシェルスクリプトを手動で簡単に実行できます。 2.xで これは、1.3などよりもさらに簡単です:

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

私は、テストケースの内側に書く殻をテストするためにそれを使用。しかし、それはまた、アプリ内で動作します:)

タスクと似ています。 コントローラ/モデルレベルから直接いくつかの特定の設定でコアのExtractTaskを実行するために、これをTranslatePluginで使用します。

特定のシェルスクリプトがある場合は、手動でConsoleOutputクラスを追加/渡す必要があるかもしれないことに注意してください。 可能であれば、コードをタスク(シェルではなく)に移動する方がよいでしょう。 あなたのシェルと通常のアプリケーションコードの両方からディスパッチすることができるLibや他の一般的なファイルの中にそれを移動することをお勧めします。これは、この主題に関する最もクリーンなアプローチであろう。

+0

私が探していたもの::)どうもありがとうございました。 – ale

+0

ありがとう! CakePHP Queueプラグインを使用し、タスクをテストしたい人は、次のようにします:App :: uses( 'QueueMyTask'、 'Plugin/Queue/Console/Command/Task'); –

0

直接、シェルスクリプトは名前から分かるように、あなたのアプリからではなく、シェルから実行されることを意図しています。

デジールの答えがthis questionの場合、アプリをシェルとやりとりさせる方法はいくつかありますが、

関連する問題