SlideShare ist ein Scribd-Unternehmen logo
1 von 15
SymfonyComponentを使って
WordPressのプラグインを作ろ
            う
 菱田@77web
 Dec 04 2011 第5回Symfony2勉強会LT
Symfony Component??
Symfony Component
•   ClassLoader
•   EventDispatcher
•   Form
•   Validator
•   HttpFoundation
•   Translator
•   Templating
•   とか
WordPress??
WordPress
• ブログツール/CMSのデファクトスタン
  ダード(?)
• テンプレートは生PHP
• プラグイン機構(フック・フィルター)
• 検証済のコンテンツ管理の機能は魅力
WordPressを開発者からみると
• プラグインや管理画面はロジックとテン
  プレートが分離されてない
• 拡張はひたすらベタ書き関数でフックを
  掛けていく方式
• O/RマッパーがないのでSQLベタ書き
• DIコンテナやsymfony1系のsfConfigのよう
  なグローバルに使える設定クラスがない
  のでWP側の内容を操作するときglobal
  $hogeを多用せざるを得ない
WPプラグインを、
Symfony Componentを使って書く
メリット
•   プラグイン自体のメンテナンス性
•   DRY
•   PHP5.3縛りにできる
•   いつもの使い方
デメリット
• PHP5.3に限定される
• プラグイン単体のファイルサイズが結構
  大きくなってしまう
早速使ってみる
ClassLoaderの設定
(使用例)
(使用例を表示してみた様子)
もっと「使える」プラグインを
       …
• プラグイン自体のスマフォ対応・ガラ
  ケー対応でHttpFoundationとか
• 管理画面を伴うプラグインで
  Validator,Trasnlation(,Form)とか
今日つかったコード
http://github.com/77web/wp-sf-myplugin
                ご質問は
                @77web
                  まで

Weitere ähnliche Inhalte

Andere mochten auch

PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件についてPHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について健治郎 安井
 
Yet another use of Phalcon
Yet another use of PhalconYet another use of Phalcon
Yet another use of PhalconYuji Iwai
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
 
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISPYamaYamamoto
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...Kousuke Ebihara
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料Yuji Otani
 
Phalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォームPhalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォームryo-utsunomiya
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリングTakako Miyagawa
 
Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話Keishi Hosoba
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHPSho A
 
8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会Yusuke Ando
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデートtomohiro kitaura
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたKatsuhiro Miura
 
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントCode igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントnoldor
 
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室Yusuke Ando
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf Conference
 

Andere mochten auch (20)

PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件についてPHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について
 
Yet another use of Phalcon
Yet another use of PhalconYet another use of Phalcon
Yet another use of Phalcon
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
受託開発のPhalcon
受託開発のPhalcon受託開発のPhalcon
受託開発のPhalcon
 
PHP勉強会 #51
PHP勉強会 #51PHP勉強会 #51
PHP勉強会 #51
 
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料
 
Phalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォームPhalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォーム
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリング
 
Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHP
 
8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデート
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
 
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントCode igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
 
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
 

Mehr von 77web

最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b77web
 
すばやく実装するための戦略とテクニック
すばやく実装するための戦略とテクニックすばやく実装するための戦略とテクニック
すばやく実装するための戦略とテクニック77web
 
テスト実行速度を改善してお金をかけずに開発スピードを爆速にする
テスト実行速度を改善してお金をかけずに開発スピードを爆速にするテスト実行速度を改善してお金をかけずに開発スピードを爆速にする
テスト実行速度を改善してお金をかけずに開発スピードを爆速にする77web
 
ズンドコキヨシon Workflower
ズンドコキヨシon Workflowerズンドコキヨシon Workflower
ズンドコキヨシon Workflower77web
 
Formとは何か?〜例えば、Symfony\Component\Formを避ける〜
Formとは何か?〜例えば、Symfony\Component\Formを避ける〜Formとは何か?〜例えば、Symfony\Component\Formを避ける〜
Formとは何か?〜例えば、Symfony\Component\Formを避ける〜77web
 
CoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トーク
CoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トークCoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トーク
CoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トーク77web
 
Scratch day 2015 Aichi プログラミングバトル by CoderDojo Nagoya
Scratch day 2015 Aichi プログラミングバトル by CoderDojo NagoyaScratch day 2015 Aichi プログラミングバトル by CoderDojo Nagoya
Scratch day 2015 Aichi プログラミングバトル by CoderDojo Nagoya77web
 
こういうデータ、どこに保存してますか? #nagoyaphp
こういうデータ、どこに保存してますか? #nagoyaphpこういうデータ、どこに保存してますか? #nagoyaphp
こういうデータ、どこに保存してますか? #nagoyaphp77web
 
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja77web
 
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LTまだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT77web
 

Mehr von 77web (10)

最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
最近のPHP事情とNagoya.phpへのお誘い #ngk2018b
 
すばやく実装するための戦略とテクニック
すばやく実装するための戦略とテクニックすばやく実装するための戦略とテクニック
すばやく実装するための戦略とテクニック
 
テスト実行速度を改善してお金をかけずに開発スピードを爆速にする
テスト実行速度を改善してお金をかけずに開発スピードを爆速にするテスト実行速度を改善してお金をかけずに開発スピードを爆速にする
テスト実行速度を改善してお金をかけずに開発スピードを爆速にする
 
ズンドコキヨシon Workflower
ズンドコキヨシon Workflowerズンドコキヨシon Workflower
ズンドコキヨシon Workflower
 
Formとは何か?〜例えば、Symfony\Component\Formを避ける〜
Formとは何か?〜例えば、Symfony\Component\Formを避ける〜Formとは何か?〜例えば、Symfony\Component\Formを避ける〜
Formとは何か?〜例えば、Symfony\Component\Formを避ける〜
 
CoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トーク
CoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トークCoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トーク
CoderDojo Nagoyaの取り組みについて at Scratch day 2015 Aichi 3分間トーク
 
Scratch day 2015 Aichi プログラミングバトル by CoderDojo Nagoya
Scratch day 2015 Aichi プログラミングバトル by CoderDojo NagoyaScratch day 2015 Aichi プログラミングバトル by CoderDojo Nagoya
Scratch day 2015 Aichi プログラミングバトル by CoderDojo Nagoya
 
こういうデータ、どこに保存してますか? #nagoyaphp
こういうデータ、どこに保存してますか? #nagoyaphpこういうデータ、どこに保存してますか? #nagoyaphp
こういうデータ、どこに保存してますか? #nagoyaphp
 
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
 
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LTまだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
まだ技術ブログを始めてないPHPerのあなたへ。PHPカンファレンス関西2013 LT
 

Symfony componentを使ってwordpressプラグインを作る