動作環境
依存ライブラリは次になります。個別にPEARインストールを行います。
- symfony-1.0.8
- PHPUnit-3.1.9
- s2container.php5-1.2.0
- s2dao.php5-1.1.2
ダウンロード
- 2007-12-16 : sfS2BasePlugin-0.8.0Beta.tgz
インストール
Symfonyのプラグインとしてインストールします。
% cd /path/to/symfony/project % symfony plugin-install sfS2BasePlugin-version.tgz >> plugin installing plugin "plugins\sfS2BasePlugin-version >> pear install ok: channel://__uri/sfS2BasePlugin-version % % symfony plugin-list Installed plugins: sfS2BasePlugin version # __uri (__uri) symfony version # pear.symfony-project.com (symfony) % % symfony -T ・・・ task aliases: ・・・ s2app = pake s2_init_app s2dao = pake s2_init_dao s2module = pake s2_init_module s2service = pake s2_init_service s2test = pake s2_phpunit_test % %
コマンド
s2app
コマンドリファレンス
% symfony s2app アプリケーション名
説明
symfony付属のappコマンドを実行した後に、次のsfS2BasePlugin用のカスタマイズを行います。
- アプリケーションディレクトリのconfig/factories.ymlを編集します。フロントコントローラクラスとして、sfS2BasePlugin_FrontWebControllerクラスを使用する設定とします。
all: controller: class: sfS2BasePlugin_FrontWebController
- アプリケーションディレクトリのlib/ディレクトリに sfS2BasePlugin_FrontWebController.class.php ファイルを用意します。
- プロジェクトディレクトリのconfig/autoload.ymlを編集します。S2Container.PHP5とS2Dao.PHP5の設定を追加します。Symfony、S2Container.PHP5、S2Dao.PHP5 が PEARインストールされている場合の設定となります。
autoload: s2container: name: S2Container ext: .class.php path: "%SF_SYMFONY_LIB_DIR%/../S2Container/S2Container" s2dao: name: S2Dao ext: .class.php path: "%SF_SYMFONY_LIB_DIR%/../S2Dao/S2Dao"
- プロジェクトディレクトリの lib/ディレクトリに dao.dicon、pdo_prod.dicon、pdo_dev.dicon、pdo_test.diconを用意します。
- プロジェクトディレクトリの data/s2base/ディレクトリに Sqlite データベースの sample.db データベースファイルを用意します。
- テストディレクトリの unit/ディレクトリに アプリケーション名のディレクトリを作成します。
- プロジェクトディレクトリの model/ディレクトリに dao、entity ディレクトリを作成します。
s2module
コマンドリファレンス
% symfony s2module アプリケーション名 モジュール名
説明
symfony付属のmoduleコマンドを実行した後に、次のsfS2BasePlugin用のカスタマイズを行います。
- モジュールディレクトリに service、dao、entity ディレクトリを作成します。
- test/unit/ディレクトリにモジュール名のディレクトリを作成し、service、dao ディレクトリを作成します。
- アプリケーションディレクトリの conf/autoload.yml にモジュールディレクトリに作成した service、dao、entityを追記します。
モジュール名 admin で作成した場合の追加される設定は次になります。
autoload: admin_service: name: admin_service ext: .class.php path: "%SF_ROOT_DIR%/apps/%SF_APP%/modules/admin/service" admin_dao: name: admin_dao ext: .class.php path: "%SF_ROOT_DIR%/apps/%SF_APP%/modules/admin/dao" admin_entity: name: admin_entity ext: .class.php path: "%SF_ROOT_DIR%/apps/%SF_APP%/modules/admin/entity"
- S2ContainerApplicationContextの設定を行う actions.inc.php をモジュールディレクトリ/actions/ディレクトリに用意します。
- actions.class.php に actions.inc.php をrequireする設定を追記します。
s2service
コマンドリファレンス
% symfony s2service アプリケーション名 モジュール名 サービスクラス名
説明
アプリケーションのロジックなどを実装する service クラスを作成します。
- サービスクラスとそのUnitTestクラスを作成します。
- symfony キャッシュをクリアします。
s2dao
コマンドリファレンス
% symfony s2dao アプリケーション名 モジュール名 テーブル名 [環境指定] [Daoクラス名] % symfony s2dao アプリケーション名 モジュール名 "テーブル名,テーブル名・・・" [環境指定] [Daoクラス名]
- テーブル名
テーブル名はカンマ区切りで複数のテーブルを指定できます。1番目のテーブルがEntityクラスのテーブル指定に使用されます。2番目以降のテーブルについては、カラム情報がEntityクラスに反映されます。 - 環境指定
symfonyの環境を指定します。この値に従ってプロジェクトディレクトリ/config/ディレクトリのpdo.diconが使用されます。 デフォルト値は [prod] です。 - Daoクラス名
Daoクラス名が指定されると、Daoクラス、Entityクラスのクラス名に反映されます。デフォルト値にはテーブル名が使用されます。
説明
S2Dao.PHP5で使用する DaoクラスとEntityクラスを作成します。
- Daoクラス、EntityクラスとDaoクラスのUnitTestクラスを作成します。
- symfony キャッシュをクリアします。
s2test
コマンドリファレンス
% symfony s2test アプリケーション名 テストパターン
- アプリケーション名
UnitTestを実行するアプリケーション名。s2testではアプリケーションごとにUnitTestを実行します。 - テストパターン
UnitTestファイル名に対するパターンマッチに使用するパターン。パターンにマッチしたUnitTestが実行されます。デフォルト値は「.*Test」です。
説明
テストディレクトリのunitディレクトリ以下のPHPUnit_Test_Caseを実行します。テスト実行前にテストディレクトリのbootstrap/functional.phpファイルをrequireします。