module コマンド
説明
Smarty と組合わせる場合、module コマンドはモジュールディレクトリに action ディレクトリと view ディレクトリを追加します。
実行例
% phing Buildfile: /seasar.php/workspace/s2base.php5/build.xml project > prepare: [php] Evaluating PHP expression: require_once('config/environment.inc.php') [php] Evaluating PHP expression: require_once('lib/S2Base/S2Base.cmd.php') project > com: [ Command list ] 0 : (exit) 1 : action 2 : interceptor 3 : module 4 : command 5 : dao 6 : dicon 7 : entity 8 : goya 9 : service choice ? : 3 <--- 3 : module を選択 module name ? : smarty <--- 英数字 [_a-zA-Z0-9] が使用可能です。 [ generate information ] module name : Hoge <--- モジュール情報を確認 confirm ? (y/n) : y [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/action/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/dao/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/dicon/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/entity/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/interceptor/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/service/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/view/ [INFO ] create : /seasar.php/workspace/s2base.php5/test/modules/smarty [INFO ] create : /seasar.php/workspace/s2base.php5/test/modules/smarty/dao/ [INFO ] create : /seasar.php/workspace/s2base.php5/test/modules/smarty/service/ [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/smarty.inc.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/view/index.tpl [ Command list ] 0 : (exit) 1 : action ・・・ BUILD FINISHED Total time: 8.1588 seconds % ls app/modules/smarty action dao dicon entity interceptor service smarty.inc.php view <--- action と view を追加 %
action コマンド
説明
action コマンドは、アクション名に対して命名規則に従いアクションクラス、設定INIファイル、ダイコンファイル、html テンプレートを作成します。 アクション名が「 hello 」の場合、アクションクラスは HelloAction、設定INIファイルは HelloAction.inc.php、ダイコンファイルは HelloAction.dicon、html テンプレートは hello.tpl となります。
実行例
% phing Buildfile: /seasar.php/workspace/s2base.php5/build.xml project > prepare: [php] Evaluating PHP expression: require_once('config/environment.inc.php') [php] Evaluating PHP expression: require_once('lib/S2Base/S2Base.cmd.php') project > com: [ Command list ] 0 : (exit) 1 : action 2 : interceptor 3 : module 4 : command 5 : dao 6 : dicon 7 : entity 8 : goya 9 : service choice ? : 1 <--- 1 : action を選択 [ Module list ] 0 : (exit) 1 : Default 2 : smarty choice ? : 2 <--- 2 : smarty モジュールを選択 action name ? : hello <--- 英数字 [_a-zA-Z0-9] が使用可能です。 [ generate information ] module name : smarty action name : hello action class name : HelloAction action dicon file name : HelloAction.dicon action inc file name : HelloAction.inc.php action tpl file name : hello.tpl confirm ? (y/n) : y <--- 表示される情報を確認 [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/action/HelloAction.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/action/HelloAction.inc.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/view/hello.tpl [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/dicon/HelloAction.dicon [ Command list ] 0 : (exit) 1 : action ・・・ BUILD FINISHED Total time: 10.9976 seconds %
interceptor コマンド
説明
アクションやサービスに適用するインターセプターを作成します。インターセプターは5種類あります。
タイプ | 説明 |
---|---|
default | interceptor コマンドと同じものです。S2Container_AbstractInterceptor を継承した interceptor を生成します。 |
arround | 主にアクションに適用するフィルタになります。S2Base_AbstractFilterInterceptor を継承し、before メソッドと after メソッドを実装します。 |
before | 主にアクションに適用するフィルタになります。S2Base_AbstractBeforeFilter を継承し、before メソッドを実装します。 |
after | 主にアクションに適用するフィルタになります。S2Base_AbstractAfterFilter を継承し、after メソッドを実装します。 |
validate |
主にアクションに適用する before フィルタになります。S2Base_AbstractValidateFilter を継承し、validateメソッド と getSuffix メソッドを実装します。
validate フィルタは、validate メソッドを実行する前に rule プロパティを設定します。設定ファイルは、モジュールディレクトリ/validate/アクション名.Suffix名.ini です。rule プロパティには、parse_ini_file関数の戻り値が設定されます。( process_sections : true ) 例えばモジュール名が smarty 、アクション名が hello、getSuffix メソッドが「 test 」を返す場合の validator 設定ファイルは、[ app/modules/smarty/validate/hello.test.ini ] となります。( validate ディレクトリは手動にて作成下さい。) |
実行例
% phing Buildfile: /seasar.php/workspace/s2base.php5/build.xml project > prepare: [php] Evaluating PHP expression: require_once('config/environment.inc.php') [php] Evaluating PHP expression: require_once('lib/S2Base/S2Base.cmd.php') project > com: [ Command list ] 0 : (exit) 1 : action 2 : interceptor 3 : module 4 : command 5 : dao 6 : dicon 7 : entity 8 : goya 9 : service choice ? : 2 <--- 2 : interceptor を選択 [ Module list ] 0 : (exit) 1 : Default 2 : smarty choice ? : 2 <--- 2 : smarty モジュールを選択 [ Type list ] 0 : (exit) 1 : default 2 : arround 3 : before 4 : after 5 : validate choice ? : 3 <--- 3 : before を選択 class name ? : TestBeforeFilter <--- 英数字 [_a-zA-Z0-9] が使用可能です。 [ generate information ] module name : smarty type : before interceptor class name : TestBeforeFilter confirm ? (y/n) : y <--- 表示される情報を確認 [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/interceptor/TestBeforeFilter.class.php [ Command list ] 0 : (exit) 1 : action ・・・ BUILD FINISHED Total time: 36.2075 seconds % % more app/modules/smarty/interceptor/TestBeforeFilter.class.php <?php /** * available properties. * protected $invocation; <--- S2Container_MethodInvocation オブジェクト * protected $request; <--- S2Base_Request オブジェクト * protected $moduleName; <--- モジュール名 ( string ) * protected $actionName; <--- アクション名 ( string ) * protected $action; <--- アクションオブジェクト * protected $view; <--- S2Base_SmartyController オブジェクト * protected $controller; <--- S2Base_SmartyController オブジェクト ( $view と同じです) */ class TestBeforeFilter extends S2Base_AbstractBeforeFilter { public function before(){ return null; } } ?> %
goya コマンド
説明
goya コマンドはアクション名を決めると、命名規則に従ってアクション、サービス、dao、enitity、ダイコンファイル、テストクラスを生成します。 actionコマンド、service コマンドと dao コマンドを同時に実行することとほぼ同じ処理になります。 例えばサービス名を「 cdList 」とすると、アクションは CdListAction、サービスは CdListService、dao は CdListDao、entity は CdListEntitiy となります。
実行例
% phing Buildfile: /seasar.php/workspace/s2base.php5/build.xml [php] Evaluating PHP expression: require_once('lib/S2Dao/src/phing/task/S2DaoSkeletonTask.php') project > prepare: [php] Evaluating PHP expression: require_once('config/environment.inc.php') [php] Evaluating PHP expression: require_once('lib/S2Base/S2Base.cmd.php') project > smarty: [phing] Calling Buildfile '/seasar.php/workspace/s2base.php5/vendor/plugins/smarty/build.xml' with target 'command' project > command: [php] Evaluating PHP expression: require_once('vendor/plugins/smarty/config/environment.inc.php') [ Command list ] 0 : (exit) 1 : interceptor 2 : action 3 : module 4 : goya 5 : sample 6 : dicon 7 : entity 8 : service 9 : command 10 : dao choice ? : 4 <--- 4 : goya を選択 [ Module list ] 0 : (exit) 1 : smarty choice ? : 1 <--- 1 : smarty モジュールを選択 action name ? : cdList <--- 英数字 [_a-zA-Z0-9] が使用可能です。 use dao ? (y/n) : y <--- Dao を使用します。 table name ? [CDLIST] : CD <--- データベースのテーブル名を設定 columns ? (id,name,--,) : id,title,content <--- カンマ区切りでカラム名を入力 [ generate information ] module name : smarty action name : cdList action class name : CdListAction action dicon file name : CdListAction.dicon action tpl file name : cdList.tpl service interface name : CdListService service class name : CdListServiceImpl service test class name : CdListServiceImplTest service dicon file name : CdListServiceImpl.dicon dao interface name : CdListDao dao test class name : CdListDaoTest entity class name : CdListEntity entity class extends : none table name : CD columns : id, title, content confirm ? (y/n) : y <--- 表示される情報を確認 [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/action/CdListAction.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/view/cdList.tpl [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/dicon/CdListAction.dicon [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/service/CdListServiceImpl.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/service/CdListService.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/test/modules/smarty/service/CdListServiceImplTest.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/dao/CdListDao.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/test/modules/smarty/dao/CdListDaoTest.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/entity/CdListEntity.class.php [INFO ] create : /seasar.php/workspace/s2base.php5/app/modules/smarty/dicon/CdListServiceImpl.dicon [ Command list ] 0 : (exit) 1 : interceptor 2 : action 3 : module 4 : goya 5 : sample 6 : dicon 7 : entity 8 : service 9 : command 10 : dao choice ? : 0 BUILD FINISHED Total time: 42.6726 seconds %