cakephp console application 拡張tips

17

Click here to load reader

Upload: kenichirou-oyama

Post on 20-Jun-2015

2.922 views

Category:

Documents


1 download

DESCRIPTION

CakePHP勉強会@福岡

TRANSCRIPT

Page 1: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 1

CakePHP Console Application 拡張Tips

Kenichirou Oyama (k1LoW)

Page 2: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 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.inand 101000code / 3rdSTONE

Page 3: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 3

CakePHPコンソールアプリケーション

bakeに代表されるCakePHPがもつ"shellから実行する"アプリケーション"

PHPスクリプトShellクラスを継承している

Page 4: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 4

bakeCakePHPのソースコード自動生成コンソールアプリケーション

データベースの情報からModel,View,Controllerだけでなくテストケースの雛形も生成してくれる

Page 5: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 5

i18nCakePHPの多言語機能用のpoファイル自動生成コンソールアプリケーション

"__('Model Name')"のようにくくられた文字列をパースしてpoファイルを自動作成文字列に対応した翻訳文字列を設定すれば、システム全体に反映されるpoファイル:(例えば)英語とその訳語の対を保持している多言語対応用辞書ファイル

Page 6: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 6

bakeの便利さ生成したソースは生成プログラムが正しければ必ず動くCakePHP1.2から生成するソースのテンプレートが切り出されている

cake/console/templates/1.1系のdecorate.phpのように、より使いやすいソースを生成するbakeに拡張が可能。

Page 7: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 7

demo

Page 8: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 8

i18nの便利さ文言の統一が1ファイルの管理のみで可能(DBでも可能)__('ERORR:01')といったエラーコードなどでもあとで1行設定するだけで日本語メッセージに変更可能__('ERORR:01')と__('ERORR:02')といったシステム的には異なるエラーコードをあとで2行設定するだけで同じ日本語メッセージに変更可能

Page 9: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 9

demo

Page 10: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 10

bake+i18n Tipsbakeしてそのまま(少なくとも管理画面では)使えるような形にtemplatesを拡張

必ず__()で囲める部分は囲んだソース生成をするようにする(i18nとの連携のため)

各メンバーは開発中もi18nの活用をあらかじめ想定したコーディングを進める(必ず__()で囲む)適宜poファイルに変換文字列を設定していく

Page 11: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 11

bake+i18n Tips初めは英語やエラーコードの羅列

機能を優先的に実装開発に余裕が出てきたところで変換文字列を設定していくソースコードが増える度にpoファイルを更新していく多言語機能の使い方としてはイレギュラーな活用

Page 12: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 12

bake+i18n初めは英語やエラーコードの羅列

機能を優先的に実装余裕が出てきたところで変換文字列を設定していくソースコードが増える度にpoファイルを更新していく多言語機能の使い方としてはイレギュラーな活用

Page 13: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 13

poファイルのマージ問題

現状のCakePHPのi18nコンソールにはpoファイルのマージ機能はない(はず)

上書きのみ今まで設定した変更文字列が消えてしまう。

Page 14: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 14

$cake merge2つのpoファイルをマージする

PHPのarray_merge()を使用bakeライクインターフェース

Shellクラスを継承して作成マージファイルのパスを初期値として設定可能

がんがんマージできる

Page 15: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 15

demo

Page 16: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 16

おわりにCakePHPはすごい。自動生成は楽。でももっと楽にできるはず。

そのためなら苦労は厭わない。楽できたらその分CakePHPのコードを読んで、もっと楽できる道を探せる(「ソース読め」の精神)。

Page 17: CakePHP Console Application 拡張Tips

CakePHP Lightning Talks 2009.3.13 17

ご静聴ありがとうございました