Piece Framework用スケルトン作成スクリプト
- 2007/05/31
高橋崇
こんにちは、最近Piece FrameworkというPHP用フレームワークを使いはじめた高橋です。
このフレームワークは、一連の処理の流れを管理する機構が盛り込まれていて、CSRF対策や同一登録画面の並行動作といった面倒な処理を、自分で記述することなく実現することができるので、とっても便利です。
そんなPiece Frameworkを使って何か新しく画面を作成する場合、
・エントリーファイル
・アクションファイル
・フロー定義ファイル
・バリデーション定義ファイル
・テンプレートファイル
といったファイルを作成することになるのですが、おっちょこちょいな私は、各ファイルの作成忘れやフロー名のタイプミスなどで、エラー画面を見ることも多かったりします。
そのうち自動で各ファイルを生成してくれるツールが提供されるものと思ってはいるのですが、それまでの繋ぎとして、雛形となるファイルを各ディレクトリへコピーするスクリプトを作ってみました。
piece-gen-20070531.tar.gz
使い方ですが、まず、ダウンロードしたファイルを好きな場所に展開します。今回は「/var/www/」へ展開することにします。
すると、下記のディレクトリとファイルが作成されます。
次に「piece-gen.php」内に記述されているスケルトンディレクトリとAUTHORの値を適宜書き換えます。
それにしても、自分で言うのもなんですが、やっつけ感溢れる汚いソースコードですね(^^;
オブジェクト指向で書かれたPiece Frameworkの綺麗なソースコードとは大違いです。
もともと自分用に作った使い捨てスクリプトですので、お見苦しい点はご容赦ください。
あとは
・piece-gen/skel/htdocs/flowname.php
・piece-gen/skel/webapp/actions/FlowNameAction.php
・piece-gen/skel/webapp/config/flows/FlowName.yaml
・piece-gen/skel/webapp/config/validations/ValidationName.yaml
・piece-gen/skel/webapp/templates/FlowName/*.html
の各ファイルを、雛形としてよく使用するファイルの内容に書き換えます。その際、「%%FLOW_NAME%%」や「%%AUTHOR%%」を置換したい箇所に記述しておきます。
では、これで準備が終わりましたので、実際に動かしてみましょう。開発するアプリケーションの構成が
となっている場合、examplesディレクトリへ移動して、piece-gen.phpを実行します。
引数はそれぞれフロー名とバリデーション名になり、もしバリデーション定義ファイルが不要な場合は、バリデーション名の引数は省略可能です。
実行が完了すると、
のように画面に表示され、雛形のファイルがexamplesの各ディレクトリへコピーされます。
あとは、表示された最後の三行を「piece-unity-config.yaml」内flowDefinitionsのvalueへ追加してください。
以上、私以外こんなへっぽこなスクリプトを使う人がいるとも思えませんが、どうぞご自由にお使いくださいませ。
このフレームワークは、一連の処理の流れを管理する機構が盛り込まれていて、CSRF対策や同一登録画面の並行動作といった面倒な処理を、自分で記述することなく実現することができるので、とっても便利です。
そんなPiece Frameworkを使って何か新しく画面を作成する場合、
・エントリーファイル
・アクションファイル
・フロー定義ファイル
・バリデーション定義ファイル
・テンプレートファイル
といったファイルを作成することになるのですが、おっちょこちょいな私は、各ファイルの作成忘れやフロー名のタイプミスなどで、エラー画面を見ることも多かったりします。
そのうち自動で各ファイルを生成してくれるツールが提供されるものと思ってはいるのですが、それまでの繋ぎとして、雛形となるファイルを各ディレクトリへコピーするスクリプトを作ってみました。
piece-gen-20070531.tar.gz
使い方ですが、まず、ダウンロードしたファイルを好きな場所に展開します。今回は「/var/www/」へ展開することにします。
- $
cd /var/www/ - $
tar xvzf piece-gen-20070531.tar.gz
すると、下記のディレクトリとファイルが作成されます。
- piece-gen/
- piece-gen/piece-gen.php
- piece-gen/skel
- piece-gen/skel/htdocs
- piece-gen/skel/htdocs/flowname.php
- piece-gen/skel/webapp
- piece-gen/skel/webapp/actions
- piece-gen/skel/webapp/actions/FlowNameAction.php
- piece-gen/skel/webapp/config
- piece-gen/skel/webapp/config/flows
- piece-gen/skel/webapp/config/flows/FlowName.yaml
- piece-gen/skel/webapp/config/validations
- piece-gen/skel/webapp/config/validations/ValidationName.yaml
- piece-gen/skel/webapp/templates
- piece-gen/skel/webapp/templates/FlowName
- piece-gen/skel/webapp/templates/FlowName/Form.html
- piece-gen/skel/webapp/templates/FlowName/Finish.html
- piece-gen/skel/webapp/templates/FlowName/Confirmation.html
次に「piece-gen.php」内に記述されているスケルトンディレクトリとAUTHORの値を適宜書き換えます。
- //
スケルトンファイルのディレクトリ - $CONFIG['skel_dir']
= "/var/www/piece-gen/skel"; ← 展開したskelディレクトリの場所を指定 - //
置換するキーワード - $CONFIG['keywords']
= array( "FLOW_NAME" => $flow_name, "AUTHOR" => "Asial Corporation <info@asial.co.jp>" ← 作成者 - );
それにしても、自分で言うのもなんですが、やっつけ感溢れる汚いソースコードですね(^^;
オブジェクト指向で書かれたPiece Frameworkの綺麗なソースコードとは大違いです。
もともと自分用に作った使い捨てスクリプトですので、お見苦しい点はご容赦ください。
あとは
・piece-gen/skel/htdocs/flowname.php
・piece-gen/skel/webapp/actions/FlowNameAction.php
・piece-gen/skel/webapp/config/flows/FlowName.yaml
・piece-gen/skel/webapp/config/validations/ValidationName.yaml
・piece-gen/skel/webapp/templates/FlowName/*.html
の各ファイルを、雛形としてよく使用するファイルの内容に書き換えます。その際、「%%FLOW_NAME%%」や「%%AUTHOR%%」を置換したい箇所に記述しておきます。
では、これで準備が終わりましたので、実際に動かしてみましょう。開発するアプリケーションの構成が
- /var/www/piece/examples/htdocs
- /var/www/piece/examples/webapp
となっている場合、examplesディレクトリへ移動して、piece-gen.phpを実行します。
引数はそれぞれフロー名とバリデーション名になり、もしバリデーション定義ファイルが不要な場合は、バリデーション名の引数は省略可能です。
- $
cd /var/www/piece/examples/ - $
/var/www/piece-gen/piece-gen.php TestSample ValidationSample
実行が完了すると、
- /var/www/piece-gen/skel/htdocs/flowname.php
-> /var/www/piece/example/htdocs/testsample.php - /var/www/piece-gen/skel/webapp/actions/FlowNameAction.php
-> /var/www/piece/example/webapp/actions/TestSampleAction.php - /var/www/piece-gen/skel/webapp/config/flows/FlowName.yaml
-> /var/www/piece/example/webapp/config/flows/TestSample.yaml - /var/www/piece-gen/skel/webapp/config/validations/ValidationName.yaml
-> /var/www/piece/example/webapp/config/validations/ValidationSample.yaml - /var/www/piece-gen/skel/webapp/templates/FlowName/Confirmation.html
-> /var/www/piece/example/webapp/templates/TestSample/Confirmation.html - /var/www/piece-gen/skel/webapp/templates/FlowName/Finish.html
-> /var/www/piece/example/webapp/templates/TestSample/Finish.html - /var/www/piece-gen/skel/webapp/templates/FlowName/Form.html
-> /var/www/piece/example/webapp/templates/TestSample/Form.html - piece-unity-config.yaml:
- name: TestSample file: ../webapp/config/flows/TestSample.yaml isExclusive: false
のように画面に表示され、雛形のファイルがexamplesの各ディレクトリへコピーされます。
あとは、表示された最後の三行を「piece-unity-config.yaml」内flowDefinitionsのvalueへ追加してください。
以上、私以外こんなへっぽこなスクリプトを使う人がいるとも思えませんが、どうぞご自由にお使いくださいませ。
トラックバック
最近の記事
- もうすぐ健康診断があるんだ・・・ [2010年09月02日 : 阿部恵]
- Photoshopで壁紙を作りながら、基本的な使い方を覚える [2010年09月01日 : 鴨田健次]
- はじめての共同作業 Canvas編 (node.js + websocket) [2010年09月01日 : 中川善樹]
- 「PHP×Flex(後編)」PHPテクニカルセミナー(無料)第4弾の募集を開始しました!! [2010年08月26日 : 和田記光]
- 【HTML5】Canvasでお絵かきしてみた(前編) [2010年08月25日 : 橋本章史]
- MacにgroongaのMySQL用ストレージエンジン [2010年08月23日 : 笹亀弘]
- Appleのサイトで見たiPhone4をFireworksで描いてみました-1/2 [2010年08月19日 : 和田記光]
- iPad版の会社紹介を作ってみました [2010年08月19日 : 小林有佳]
- iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (2) [2010年08月19日 : 亀本大地]
- symfonyセミナー動画無料公開! [2010年08月13日 : 岡本雄樹]



最近のコメント