CakePHPのシェル機能で各種コントローラーやコンポーネントを読み込む
CakePHPのシェル機能の使い方って情報が少ない気がする。
ということでちょっとしたまとめ。
<?php App::import('Core', 'Controller'); // コントローラーのベースクラス App::import('Controller', 'App'); // AppController App::import('Controller', 'UsersController'); // UsersController App::import('Component', 'TestComp'); // コンポーネント App::import('Component', 'MyPlugin.PluginComp'); // プラグインのコンポーネント class SampleShell extends Shell { var $uses = array('User'); // モデルは普通にこれでOK function startup() { $this->Controller = new Controller(); $this->AppController = new AppController(); $this->UsersController = new UsersController(); $this->TestComp = new TestCompComponent(); $this->PluginComp = new PluginCompComponent(); } function test() { // 後は下のようにメンバ変数から各コントローラーやコンポーネントにアクセス可能 $this->TestComp->test(); $this->UsersController->getTest(); // モデルも普通に使えます $data = $this->User->find('all'); } } ?>