Mais conteúdo relacionado
Mais de Kenichirou Oyama (10)
CakePHP Console Application 拡張Tips
- 2. 自己紹介
type:
プログラマ
language:
PHP 2y+ / CakePHP 2y / etc..
EmacsのCakePHPマイナーモード
cake.elを作っていたりします
membership:
Fusic Co.,Ltd >> http://fusic.co.jp
codecheck.in >> http://trac.codecheck.in
and 101000code / 3rdSTONE
CakePHP Lightning Talks 2009.3.13 2
- 3. CakePHPコンソールアプリケー
ション
bakeに代表されるCakePHP
がもつquot;shellから実行するquot;
アプリケーションquot;
PHPスクリプト
Shellクラスを継承している
CakePHP Lightning Talks 2009.3.13 3
- 4. bake
CakePHPのソースコード自
動生成コンソールアプリ
ケーション
データベースの情報から
Model,View,Controllerだけ
でなくテストケースの雛形も
生成してくれる
CakePHP Lightning Talks 2009.3.13 4
- 5. i18n
CakePHPの多言語機能用のpo
ファイル自動生成コンソールアプ
リケーション
quot;__('Model Name')quot;のようにくくられた文字
列をパースしてpoファイルを自動作成
文字列に対応した翻訳文字列を設定すれば、
システム全体に反映される
poファイル:(例えば)英語とその訳語の対を保
持している多言語対応用辞書ファイル
CakePHP Lightning Talks 2009.3.13 5
- 6. bakeの便利さ
生成したソースは生成プログラム
が正しければ必ず動く
CakePHP1.2から生成するソース
のテンプレートが切り出されてい
る
cake/console/templates/
1.1系のdecorate.phpのように、よ
り使いやすいソースを生成する
bakeに拡張が可能。
CakePHP Lightning Talks 2009.3.13 6
- 8. i18nの便利さ
文言の統一が1ファイルの管理のみで
可能(DBでも可能)
__('ERORR:01')といったエラーコー
ドなどでもあとで1行設定するだけで
日本語メッセージに変更可能
__('ERORR:01')と__('ERORR:02')と
いったシステム的には異なるエラー
コードをあとで2行設定するだけで同
じ日本語メッセージに変更可能
CakePHP Lightning Talks 2009.3.13 8
- 10. bake+i18n Tips
bakeしてそのまま(少なくとも管理画面で
は)使えるような形にtemplatesを拡張
必ず__()で囲める部分は囲んだソース生成を
するようにする(i18nとの連携のため)
各メンバーは開発中もi18nの活用をあら
かじめ想定したコーディングを進める(必
ず__()で囲む)
適宜poファイルに変換文字列を設定して
いく
CakePHP Lightning Talks 2009.3.13 10
- 11. bake+i18n Tips
初めは英語やエラーコードの羅列
機能を優先的に実装
開発に余裕が出てきたところで変
換文字列を設定していく
ソースコードが増える度にpo
ファイルを更新していく
多言語機能の使い方としてはイレ
ギュラーな活用
CakePHP Lightning Talks 2009.3.13 11
- 12. bake+i18n
初めは英語やエラーコードの羅列
機能を優先的に実装
余裕が出てきたところで変換文字
列を設定していく
ソースコードが増える度にpo
ファイルを更新していく
多言語機能の使い方としてはイレ
ギュラーな活用
CakePHP Lightning Talks 2009.3.13 12
- 13. poファイルのマージ問題
現状のCakePHPのi18nコン
ソールにはpoファイルの
マージ機能はない(はず)
上書きのみ
今まで設定した変更文字列
が消えてしまう。
CakePHP Lightning Talks 2009.3.13 13
- 14. $cake merge
2つのpoファイルをマージする
PHPのarray_merge()を使用
bakeライクインターフェース
Shellクラスを継承して作成
マージファイルのパスを初期値と
して設定可能
がんがんマージできる
CakePHP Lightning Talks 2009.3.13 14
- 16. おわりに
CakePHPはすごい。
自動生成は楽。
でももっと楽にできるはず。
そのためなら苦労は厭わない。
楽できたらその分CakePHPのコー
ドを読んで、もっと楽できる道を
探せる(「ソース読め」の精神)。
CakePHP Lightning Talks 2009.3.13 16