« UPSの故障?ついに加子母にイー・モバイル »

シェルからコンポーネントを使う

シェルからコンポーネントを使う

パーマリンク 2009/01/22 23:28:37 著者: kumaold メール
カテゴリ: プログラミング, PHP, CakePHP

CakePHPの機能の一つであるシェルでは、CakeのDBの扱いやすさはそのままでバッチ処理が書けるので便利に使っていますが、若干の制約があります。


どうもシェル=コントローラではないようで、長くなる処理をコンポーネントに分割しても普通にコンポーネントを呼び出すことができません。

普通はコントローラでこのように書けば大丈夫です。

var $components = array('ComponentName');


そこで、こちらの記事を参考にシェルでコンポーネントを使う方法を試してみました。

あらかじめコンポーネント単体をインポートしておき、インスタンス化することでアクセスできるようになるということです。

最低限の普通な使い方なら、これだけでコンポーネントが使えます。

//コンポーネントをインポートする
App::import('Component', 'ComponentName');

class SampleShell extends Shell
{    
  function startup()
  {
    $this->ComponentName = new ComponentNameComponent($this);
  }
}


これで数百行になってしまったバッチ処理を片付けられます。
 
 

type="text/javascript" src="http://www.ad16.jp/socailmedia.php?a=CCBot%2F2.0+%28http%3A%2F%2Fcommoncrawl.org%2Ffaq%2F%29&u=http%3A%2F%2Fkuroutoshikou.blog16.jp%2Findex.php%2F2009%2F01%2F22%2Fa_ma_sa_la_a_a_sa_sa_a_fa_a_sa_a_afia" charset="EUC-JP">

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年4月
 << <   > >>
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

検索

XMLフィード

16ブログ     powered by b2evolution