メニュー

ドキュメント

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
%