サイトアイコン Lonely Mobiler

CakePHP の Shell から Component を使用する。

Shellで動かすスクリプトでコンポーネントを読み込もうと、コントローラに書くノリで

var $components = array('Thumbmake');

とやってもpgrされてしまいどうしたもんかとぐぐったらちゃんと方法があった。

CakePHPのShellからメール送信 : アシアルブログ

ありがとうございます!

で、俺が使いたいのは @zaru 氏作の Thumbmake 上の通りにしても動かなかったのでなんでかなーと10秒ぐらい悩んで解決した。

これがうまく動かない。

App::import('Core', 'Controller'); App::import('Component', 'Thumbmake');

class hogeShell extends Shell { function startup() { $this->controller = new Controller(); $this->Thumbmake = new ThumbmakeComponent($this); $this->Thumbmake->startup($this->controller); } }

で、ThumbmakeComponent の中を見ると・・・

class ThumbmakeComponent extends Object {< function init(){ $this->setMakeType = 'gd'; $this->imageMagick = '/usr/bin/convert'; # 略

startup じゃなくて init を実行してやればいいのか?
と思って書き換えたらちゃんと動いた。めでたしめでたし。

で、こうなった。
after

App::import('Core', 'Controller'); App::import('Component', 'Thumbmake');

class hogeShell extends Shell { function startup() { $this->controller = new Controller(); $this->Thumbmake = new ThumbmakeComponent($this); $this->Thumbmake->init($this->controller); } }

CakePHP, ぐぐったらだいたい出てくるので楽でいいですね。

Sponsored Link
モバイルバージョンを終了