実"戦"cakephp plugin

39
CakePHP勉強会#5@Tokyo 福岡サテライト 1 実"戦" CakePHP Plugin Kenichirou Oyama (k1LoW)

Upload: kenichirou-oyama

Post on 18-Dec-2014

6.252 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 実"戦"CakePHP Plugin

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

実"戦" CakePHP Plugin

Kenichirou Oyama (k1LoW)

Page 2: 実"戦"CakePHP Plugin

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

Agenda• About Me• 実"戦"で使うPlugin/Component• About 'futil'

Page 3: 実"戦"CakePHP Plugin

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

About Me

Page 4: 実"戦"CakePHP Plugin

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

Page 5: 実"戦"CakePHP Plugin

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

実"戦"で使うPlugin/Component

Page 6: 実"戦"CakePHP Plugin

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

• 入社からCakePHP導入を主導して現在まで3年、FusicのPHPチームのメインフレームワークはCakePHPに。• 実戦で使っているPlugin(   )やComponent、さらに今後実戦投入予定のPlugin、Component(   )を紹介します。

CakePHPで戦えますか?

導入済

投入予定

Page 7: 実"戦"CakePHP Plugin

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

Debug Kit

導入済

Page 8: 実"戦"CakePHP Plugin

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

説明不要

Page 9: 実"戦"CakePHP Plugin

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

Ktai Library

導入済

Page 10: 実"戦"CakePHP Plugin

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

説明不要

Page 11: 実"戦"CakePHP Plugin

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

cakeplus

Page 12: 実"戦"CakePHP Plugin

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

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

• 特にバリデーション周りの拡張は重要–日本でのシステムの一般的なバリデーション

メソッドの充実–バリデーションエラーメッセージに__()が設

定できる• みなさん使っていますか?

cakeplus導入済

Page 13: 実"戦"CakePHP Plugin

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

Search

Page 14: 実"戦"CakePHP Plugin

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

• CakeDC謹製の検索機能追加用Plugin• 使ってみたらため息がでるほど簡単に検

索機能を追加できた• つづきはWebで検索!

Search

Fusic blog 検索

投入予定

Page 15: 実"戦"CakePHP Plugin

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

TransitionComponent

Page 16: 実"戦"CakePHP Plugin

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

• id:hiromi2424さん作成のページ遷移管理コンポーネント

• ここ最近のNo.1ヒット• 日本のみんなが大好き(?)な確認画面なん

てすぐ作れる

TransitionComponent投入予定

Page 17: 実"戦"CakePHP Plugin

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

その他

Page 18: 実"戦"CakePHP Plugin

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

• QdmailComponent– メール定番のQdmail用コンポーネント

• cakephp_exception_notifier– PHPエラーが起きたらメール送信

• Fatty– Gitリポジトリブラウザ。自作ながら個人的定番

• has_no– bindModel()/unbindModel()に疲れた方に

• po– poファイル編集Plugin。cakeplusとあわせて個人的

定番

その他投入予定

投入予定

導入済

導入済

導入済

Page 19: 実"戦"CakePHP Plugin

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

About 'futil'

Page 20: 実"戦"CakePHP Plugin

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

• Fusic社内用CakePHP Plugin–FusicでのCakePHPプロジェクトから自分を中心に作成したライブラリ群–汎用的なものよりも実戦的なものが多い•環境依存も多数

–主に開発効率をあげるもの

About 'futil'

Page 21: 実"戦"CakePHP Plugin

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

futilの代表的な機能の紹介

Page 22: 実"戦"CakePHP Plugin

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

f コマンド

Page 23: 実"戦"CakePHP Plugin

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

$cake f

$php cake/console/cake.php f

OR

Page 24: 実"戦"CakePHP Plugin

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

Library init

$cake f l

Page 25: 実"戦"CakePHP Plugin

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

• PluginやComponent、PHPのライブラリまで選択するだけでインストールを行うコマンド• 必要ならばソースに設定を書き加える• 現在インストール可能なライブラリ– debuglib, DebugKit, SimpleTest, cakeplus, po,

has_no, simple_file, Search, TransitionComponent, Qdmail, Qdsmtp, wkhtmltopdf, Fatty

Library init

Page 26: 実"戦"CakePHP Plugin

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

Design init

$cake f d

Page 27: 実"戦"CakePHP Plugin

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

• CakePHPのデフォルトテンプレートを書き換えるコマンド–bakeコマンドで生成されるソースファイルも変更

• 必要なイメージ画像やjs、cssまでセットする• 現在選択できるデザインは3つ–簡単にテンプレートの追加が可能• CakePHP1.3の機能を使用

Design init

Page 28: 実"戦"CakePHP Plugin

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

Design init

Page 29: 実"戦"CakePHP Plugin

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

Design init

Page 30: 実"戦"CakePHP Plugin

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

Design init

Page 31: 実"戦"CakePHP Plugin

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

Design init

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

※急募:クールなPlugin名

Page 32: 実"戦"CakePHP Plugin

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

Validation Pattern Behavior

Page 33: 実"戦"CakePHP Plugin

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

• 同じモデルバリデーションを1つにまとめるBehavior–例えば、一般ユーザの姓名のバリデーションと管理ユーザの姓名のバリデーションをそれぞれ書かなくてもよい

• cakeplusにもコミットしている謎のプログラマ"Kagasawa-san"作成の実戦に即したBehavior

Validation Pattern Behavior

Page 34: 実"戦"CakePHP Plugin

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, ), ),          ); }

Page 35: 実"戦"CakePHP Plugin

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

Validation Pattern Behavior<?phpclass UserModel extends AppModel {

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

var $validate = array( // 姓 'family_name' => 'family_name_pattern',          ); }

Page 36: 実"戦"CakePHP Plugin

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

Validation Pattern Behavior

cakeplusにpull request予定

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

Page 37: 実"戦"CakePHP Plugin

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

その他• app/tmp内のキャッシュファイルをコマ

ンドで一括削除できたり• .pdfをURLにつけるとpdf出力ができたり• sqlとモデルファイルを分離できたり• NetBeansハック用コメントを挿入できた

り• ユーザ認証をコマンドで実装できたり

Page 38: 実"戦"CakePHP Plugin

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

まとめ• いろいろなPluginがものすごい勢いでリ

リース。– 特にgithubをチェック

• 最近は「システム依存はHelper/Component/Behavior。汎用的なものはPlugin」というようになってきた。

• (社内)ツールをまとめたPluginおすすめ– id:slywalkerさんの言っていたことは本当– http://d.hatena.ne.jp/slywalker/20090523/1243059244

Page 39: 実"戦"CakePHP Plugin

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

告知

7月CakePHP@Fukuoka開催予定!

※スペシャルゲストも!