説明
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 コマンドは、アクション名に対して命名規則に従いアクションクラス、設定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
%
説明
アクションやサービスに適用するインターセプターを作成します。インターセプターは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 コマンドはアクション名を決めると、命名規則に従ってアクション、サービス、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
%
|