Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
実"戦" 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

8,464 views

Published on

Published in: Technology, Business
  • Be the first to comment

実"戦"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

×