実"戦" CakePHP Plugin

        Kenichirou Oyama     (k1LoW)




CakePHP勉強会#5@Tokyo 福岡サテライト             1
Agenda
• About Me
• 実"戦"で使うPlugin/Component
• About 'futil'




CakePHP勉強会#5@Tokyo 福岡サテライト   2
About Me



CakePHP勉強会#5@Tokyo 福岡サテライト   3
About Me
• name:
  – Kenichirou Oyama (id:k1LoW)
     • from Fukuoka JAPAN
• membership:
  – 
  – 101000code/101000LAB
  –...
実"戦"で使う
        Plugin/Component



CakePHP勉強会#5@Tokyo 福岡サテライト   5
CakePHPで戦えますか?
• 入社からCakePHP導入を主導して現
  在まで3年、FusicのPHPチームのメ
  インフレームワークはCakePHPに。
• 実戦で使っているPlugin(   )や
                 ...
導入済




                 Debug Kit




CakePHP勉強会#5@Tokyo 福岡サテライト    7
説明不要



CakePHP勉強会#5@Tokyo 福岡サテライト   8
導入済




               Ktai Library




CakePHP勉強会#5@Tokyo 福岡サテライト     9
説明不要



CakePHP勉強会#5@Tokyo 福岡サテライト   10
cakeplus




CakePHP勉強会#5@Tokyo 福岡サテライト   11
導入済

                 cakeplus
• id:cakephperさん作成のCakePHP拡張
  Plugin
  – 自分がメインのプロジェクトでは常に使用
     • 個人的には当たり前レベル
• 特にバリデーシ...
Search




CakePHP勉強会#5@Tokyo 福岡サテライト   13
投入予定

                   Search
• CakeDC謹製の検索機能追加用Plugin
• 使ってみたらため息がでるほど簡単に検
  索機能を追加できた
• つづきはWebで検索!


  Fusic blog    ...
TransitionComponent




CakePHP勉強会#5@Tokyo 福岡サテライト   15
投入予定

     TransitionComponent
• id:hiromi2424さん作成のページ遷移管理
  コンポーネント
• ここ最近のNo.1ヒット
• 日本のみんなが大好き(?)な確認画面なん
  てすぐ作れる




Ca...
その他




CakePHP勉強会#5@Tokyo 福岡サテライト   17
その他
• QdmailComponent       投入予定
  – メール定番のQdmail用コンポーネント
• cakephp_exception_notifier   導入済

  – PHPエラーが起きたらメール送信
• Fatty...
About 'futil'




CakePHP勉強会#5@Tokyo 福岡サテライト     19
About 'futil'
• Fusic社内用CakePHP Plugin
  – FusicでのCakePHPプロジェクトか
    ら自分を中心に作成したライブラリ
    群
  – 汎用的なものよりも実戦的なものが
    多い
  ...
futilの代表的な機能の紹介




CakePHP勉強会#5@Tokyo 福岡サテライト   21
f コマンド




CakePHP勉強会#5@Tokyo 福岡サテライト   22
$cake f

                       OR
$php cake/console/cake.php f




CakePHP勉強会#5@Tokyo 福岡サテライト     23
Library init


$cake f l

CakePHP勉強会#5@Tokyo 福岡サテライト    24
Library init
• PluginやComponent、PHPのライブ
  ラリまで選択するだけでインストー
  ルを行うコマンド
• 必要ならばソースに設定を書き加え
  る
• 現在インストール可能なライブラリ
  – debugl...
Design init


$cake f d

CakePHP勉強会#5@Tokyo 福岡サテライト    26
Design init
• CakePHPのデフォルトテンプレート
  を書き換えるコマンド
  – bakeコマンドで生成されるソース
    ファイルも変更
• 必要なイメージ画像やjs、cssまで
  セットする
• 現在選択できるデザイ...
Design init




CakePHP勉強会#5@Tokyo 福岡サテライト   28
Design init




CakePHP勉強会#5@Tokyo 福岡サテライト   29
Design init




CakePHP勉強会#5@Tokyo 福岡サテライト   30
Design init



Pluginとしてオープンソース化予定

         ※急募:クールなPlugin名



CakePHP勉強会#5@Tokyo 福岡サテライト   31
Validation Pattern Behavior




CakePHP勉強会#5@Tokyo 福岡サテライト     32
Validation Pattern Behavior
• 同じモデルバリデーションを1つにま
  とめるBehavior
  – 例えば、一般ユーザの姓名のバリデー
    ションと管理ユーザの姓名のバリデー
    ションをそれぞれ書かなく...
Validation Pattern Behavior
<?php
class UserModel extends AppModel {

  var $validate = array(
                  // 姓
    ...
Validation Pattern Behavior
<?php
class UserModel extends AppModel {

  var $actsAs = array('Futil.ValidationPatterns');

...
Validation Pattern Behavior



    cakeplusにpull request予定

      id:cakephperさんお願いします!



CakePHP勉強会#5@Tokyo 福岡サテライト     ...
その他
• app/tmp内のキャッシュファイルをコマ
  ンドで一括削除できたり
• .pdfをURLにつけるとpdf出力ができたり
• sqlとモデルファイルを分離できたり
• NetBeansハック用コメントを挿入できた
  り
• ユー...
まとめ
• いろいろなPluginがものすごい勢いでリ
  リース。
  – 特にgithubをチェック
• 最近は「システム依存は
  Helper/Component/Behavior。汎用的な
  ものはPlugin」というようになってき...
告知



 7月CakePHP@Fukuoka開催予定!

          ※スペシャルゲストも!



CakePHP勉強会#5@Tokyo 福岡サテライト   39
Upcoming SlideShare
Loading in...5
×

実"戦"CakePHP Plugin

6,805

Published on

Published in: Technology, Business
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,805
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
22
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "実"戦"CakePHP Plugin"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×