CakePHP Console Application 拡張Tips

4,200 views

Published on

CakePHP勉強会@福岡

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,200
On SlideShare
0
From Embeds
0
Number of Embeds
2,052
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CakePHP Console Application 拡張Tips

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

×