実"戦"cakephp plugin
DESCRIPTION
TRANSCRIPT
CakePHP勉強会#5@Tokyo 福岡サテライト 1
実"戦" CakePHP Plugin
Kenichirou Oyama (k1LoW)
CakePHP勉強会#5@Tokyo 福岡サテライト 2
Agenda• About Me• 実"戦"で使うPlugin/Component• About 'futil'
CakePHP勉強会#5@Tokyo 福岡サテライト 3
About Me
CakePHP勉強会#5@Tokyo 福岡サテライト 4
• name:–Kenichirou Oyama (id:k1LoW)
• from Fukuoka JAPAN• membership:
– –101000code/101000LAB
– codecheck.in• “cake.el” maintener
– CakePHP Emacs Minor Mode
About Me
CakePHP勉強会#5@Tokyo 福岡サテライト 5
実"戦"で使うPlugin/Component
CakePHP勉強会#5@Tokyo 福岡サテライト 6
• 入社からCakePHP導入を主導して現在まで3年、FusicのPHPチームのメインフレームワークはCakePHPに。• 実戦で使っているPlugin( )やComponent、さらに今後実戦投入予定のPlugin、Component( )を紹介します。
CakePHPで戦えますか?
導入済
投入予定
CakePHP勉強会#5@Tokyo 福岡サテライト 7
Debug Kit
導入済
CakePHP勉強会#5@Tokyo 福岡サテライト 8
説明不要
CakePHP勉強会#5@Tokyo 福岡サテライト 9
Ktai Library
導入済
CakePHP勉強会#5@Tokyo 福岡サテライト 10
説明不要
CakePHP勉強会#5@Tokyo 福岡サテライト 11
cakeplus
CakePHP勉強会#5@Tokyo 福岡サテライト 12
• id:cakephperさん作成のCakePHP拡張Plugin–自分がメインのプロジェクトでは常に使用• 個人的には当たり前レベル
• 特にバリデーション周りの拡張は重要–日本でのシステムの一般的なバリデーション
メソッドの充実–バリデーションエラーメッセージに__()が設
定できる• みなさん使っていますか?
cakeplus導入済
CakePHP勉強会#5@Tokyo 福岡サテライト 13
Search
CakePHP勉強会#5@Tokyo 福岡サテライト 14
• CakeDC謹製の検索機能追加用Plugin• 使ってみたらため息がでるほど簡単に検
索機能を追加できた• つづきはWebで検索!
Search
Fusic blog 検索
投入予定
CakePHP勉強会#5@Tokyo 福岡サテライト 15
TransitionComponent
CakePHP勉強会#5@Tokyo 福岡サテライト 16
• id:hiromi2424さん作成のページ遷移管理コンポーネント
• ここ最近のNo.1ヒット• 日本のみんなが大好き(?)な確認画面なん
てすぐ作れる
TransitionComponent投入予定
CakePHP勉強会#5@Tokyo 福岡サテライト 17
その他
CakePHP勉強会#5@Tokyo 福岡サテライト 18
• QdmailComponent– メール定番のQdmail用コンポーネント
• cakephp_exception_notifier– PHPエラーが起きたらメール送信
• Fatty– Gitリポジトリブラウザ。自作ながら個人的定番
• has_no– bindModel()/unbindModel()に疲れた方に
• po– poファイル編集Plugin。cakeplusとあわせて個人的
定番
その他投入予定
投入予定
導入済
導入済
導入済
CakePHP勉強会#5@Tokyo 福岡サテライト 19
About 'futil'
CakePHP勉強会#5@Tokyo 福岡サテライト 20
• Fusic社内用CakePHP Plugin–FusicでのCakePHPプロジェクトから自分を中心に作成したライブラリ群–汎用的なものよりも実戦的なものが多い•環境依存も多数
–主に開発効率をあげるもの
About 'futil'
CakePHP勉強会#5@Tokyo 福岡サテライト 21
futilの代表的な機能の紹介
CakePHP勉強会#5@Tokyo 福岡サテライト 22
f コマンド
CakePHP勉強会#5@Tokyo 福岡サテライト 23
$cake f
$php cake/console/cake.php f
OR
CakePHP勉強会#5@Tokyo 福岡サテライト 24
Library init
$cake f l
CakePHP勉強会#5@Tokyo 福岡サテライト 25
• PluginやComponent、PHPのライブラリまで選択するだけでインストールを行うコマンド• 必要ならばソースに設定を書き加える• 現在インストール可能なライブラリ– debuglib, DebugKit, SimpleTest, cakeplus, po,
has_no, simple_file, Search, TransitionComponent, Qdmail, Qdsmtp, wkhtmltopdf, Fatty
Library init
CakePHP勉強会#5@Tokyo 福岡サテライト 26
Design init
$cake f d
CakePHP勉強会#5@Tokyo 福岡サテライト 27
• CakePHPのデフォルトテンプレートを書き換えるコマンド–bakeコマンドで生成されるソースファイルも変更
• 必要なイメージ画像やjs、cssまでセットする• 現在選択できるデザインは3つ–簡単にテンプレートの追加が可能• CakePHP1.3の機能を使用
Design init
CakePHP勉強会#5@Tokyo 福岡サテライト 28
Design init
CakePHP勉強会#5@Tokyo 福岡サテライト 29
Design init
CakePHP勉強会#5@Tokyo 福岡サテライト 30
Design init
CakePHP勉強会#5@Tokyo 福岡サテライト 31
Design init
Pluginとしてオープンソース化予定
※急募:クールなPlugin名
CakePHP勉強会#5@Tokyo 福岡サテライト 32
Validation Pattern Behavior
CakePHP勉強会#5@Tokyo 福岡サテライト 33
• 同じモデルバリデーションを1つにまとめるBehavior–例えば、一般ユーザの姓名のバリデーションと管理ユーザの姓名のバリデーションをそれぞれ書かなくてもよい
• cakeplusにもコミットしている謎のプログラマ"Kagasawa-san"作成の実戦に即したBehavior
Validation Pattern Behavior
CakePHP勉強会#5@Tokyo 福岡サテライト 34
Validation Pattern Behavior<?phpclass UserModel extends AppModel {
var $validate = array( // 姓 'family_name' => array( 'notEmptyFamilyName' => array( 'rule' => 'notempty', 'allowEmpty' => false, 'last' => true, ), 'notSpaceOnlyFamilyName' => array( 'rule' => 'space_only', 'allowEmpty' => true, 'last' => true, ), 'zenkakuOnlyFamilyName' => array( 'rule' => 'zenkaku_only', 'allowEmpty' => true, 'last' => true, ), ), ); }
CakePHP勉強会#5@Tokyo 福岡サテライト 35
Validation Pattern Behavior<?phpclass UserModel extends AppModel {
var $actsAs = array('Futil.ValidationPatterns');
var $validate = array( // 姓 'family_name' => 'family_name_pattern', ); }
CakePHP勉強会#5@Tokyo 福岡サテライト 36
Validation Pattern Behavior
cakeplusにpull request予定
id:cakephperさんお願いします!
CakePHP勉強会#5@Tokyo 福岡サテライト 37
その他• app/tmp内のキャッシュファイルをコマ
ンドで一括削除できたり• .pdfをURLにつけるとpdf出力ができたり• sqlとモデルファイルを分離できたり• NetBeansハック用コメントを挿入できた
り• ユーザ認証をコマンドで実装できたり
CakePHP勉強会#5@Tokyo 福岡サテライト 38
まとめ• いろいろなPluginがものすごい勢いでリ
リース。– 特にgithubをチェック
• 最近は「システム依存はHelper/Component/Behavior。汎用的なものはPlugin」というようになってきた。
• (社内)ツールをまとめたPluginおすすめ– id:slywalkerさんの言っていたことは本当– http://d.hatena.ne.jp/slywalker/20090523/1243059244
CakePHP勉強会#5@Tokyo 福岡サテライト 39
告知
7月CakePHP@Fukuoka開催予定!
※スペシャルゲストも!