開発したアプリなど一覧

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

コメント