CakePHP2でコントローラーからAppShellを継承したシェルクラスのメソッドを呼び出したい場合

こんにちは。オガリア開発チームの粂です。

CakePHPのバージョン:2.4

コントローラーのアクションの中で、AppShellを継承したシェルクラスのメソッドを呼び出したい場合についてです。

呼び出したいシェルクラスがHogeShellだとすると、

App::uses('AppShell', 'Console/Command');
App::uses('HogeShell', 'Console/Command');

クラスの冒頭でAppShellとHogeShellの両方をApp::usesします。

アクション内では以下のようにします。呼び出したい対象のメソッドがfugaだとすると、
まずstartupを呼び出して、対象のfugaを呼び出します。

$shell = new HogeShell();
$shell->startup();
$shell->fuga();

最後までお読みいただきありがとうございました!

Pocket