Shell の基本

Posted by muchag | CakePHP |
初回投稿:2011-06-07 (火) 3:30:36 | 最終更新:2011-06-07 (火) 3:30:36

Shell はコントローラによく似ている。
まぁ、まだよくわかっていないから勘違いかもしれないけど
細かいところは コントローラ 参照。

The CakePHP 1.3 Book:3.13 CakePHP コンソール

【環境】
[CakePHP] 1.3.8
役割

普段はコントローラが担う仕事を
コマンド処理の場合にコントローラの代わりをする?
 

ネーミング

自由。

名詞の複数形とかの制約もなさそう。
 

ファイル名

Shell名.php
とする。
例) users.php

クラス名

ファイル名を頭文字大文字で引っ付ける・・・のかしら?
例) users.php → UsersShell
 

格納場所
app\vendors\shells

 

スケルトン
  1. <?php
  2. // app/controllers/users_controller.php
  3. class UsersShell extends Shell {
  4.  
  5.     var $name = 'Users';
  6.     var $uses = array('User');
  7.  
  8.     function startup() {
  9.         /* 処理前の設定? */
  10.     }
  11.  
  12.     function main() {
  13.         /* 処理 */
  14.     }
  15. }&#91;/php]
  16.  
  17. <div class="flow2">継承</div>
  18. コントローラは、<span class="emphasis_r">必ず</span> Shell クラスまたはそのサブクラスを継承すること。
  19.  
  20. <div class="flow3">Shell クラスを継承する場合</div>
  21. [php]class UsersShell extends Shell {

 

Shell クラスのサブクラスを継承する場合

こんなことができるのか、まだ不明だけど
この手法を用いると、複数 Shell で共通の設定を共有できる はず。

ただし、その場合は、同名のプロパティやメソッドを上書きしてしまうので

cake\console\libs\shell.php

を参考に、マージさせる手法を考えなくてはならない場合も出てくる。
 

プロパティ

コントローラに準ずる。
 

メソッド
定義済みメソッド
startup

処理をする前に必要な設定を記述する場所と思われる。
 

main

基本的には、ここにコマンドラインで行いたい処理を記述する。
 

アクションメソッド

 

一般メソッド

 

読み込み優先順位
Posted by muchag | CakePHP |
初回投稿:2011-06-07 (火) 3:30:36 | 最終更新:2011-06-07 (火) 3:30:36

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment