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, ぐぐったらだいたい出てくるので楽でいいですね。