Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バンドルの作り方

 バンドルの作り方

Symfony Meetup #9 LT 資料
https://symfony.doorkeeper.jp/events/38802

Takashi Kanemoto

February 27, 2016
Tweet

More Decks by Takashi Kanemoto

Other Decks in Programming

Transcript

  1. @qckanemoto 名古屋 か ら来ました (株)カルテットコミュニケーションズ CTO PHP 歴 4 年

    , Symfony 歴 2 年( 1 年 ぐ ら いROM 専) #nagoyaphp, #symfony_meetup 2 / 40
  2. 外部のバンドルを使 う 時 に追加 に設定を追記 c o m p o

    s e r r e q u i r e f o o / b a r - b u n d l e A p p K e r n e l c o n f i g . y m l 17 / 40
  3. 外部のバンドルを使 う 時 Packagist に公開すれば いい だ け に追加 に設定を追記

    c o m p o s e r r e q u i r e f o o / b a r - b u n d l e A p p K e r n e l c o n f i g . y m l 18 / 40
  4. 外部のバンドルを使 う 時 Packagist に公開すれば いい だ け に追加 アプリ用のバンドルでも同じ

    こ としてる に設定を追記 c o m p o s e r r e q u i r e f o o / b a r - b u n d l e A p p K e r n e l c o n f i g . y m l 19 / 40
  5. 外部のバンドルを使 う 時 Packagist に公開すれば いい だ け に追加 アプリ用のバンドルでも同じ

    こ としてる に設定を追記 し か 書 い た こ とな いか も c o m p o s e r r e q u i r e f o o / b a r - b u n d l e A p p K e r n e l c o n f i g . y m l s e r v i c e s . y m l 20 / 40
  6. A ほぼ YES ! だ け ど config.yml で設定 で

    き るよ う にする必要 があ りそ う 22 / 40
  7. config.yml バンドル側では 、「 どんな項目にどんな値 が 設定 で き る か」

    が 定義されて い る 定義されて い る設定項目はコマンドで確認可能 $ p h p a p p / c o n s o l e c o n f i g : d u m p - r e f e r e n c e w e b _ p r o f i l e r # D e f a u l t c o n f i g u r a t i o n f o r e x t e n s i o n w i t h a l i a s : " w e b _ p r o f i l e r " w e b _ p r o f i l e r : t o o l b a r : f a l s e p o s i t i o n : b o t t o m i n t e r c e p t _ r e d i r e c t s : f a l s e e x c l u d e d _ a j a x _ p a t h s : ' ^ / ( a p p ( _ [ \ w ] + ) ? \ . p h p / ) ? _ w d t ' 26 / 40
  8. 実際やる こ と 「 どんな項目にどんな値 が 設定で き る か」

    を定義 それらの設定項目 が 外 か ら入って く る こ とを前提 にサービスを定義 28 / 40
  9. 実際やる こ と 「 どんな項目にどんな値 が 設定で き る か」

    を定義 に を実装 それらの設定項目 が 外 か ら入って く る こ とを前提 にサービスを定義 D e p e n d e n c y I n j e c t i o n \ C o n f i g u r a t i o n g e t C o n f i g T r e e B u i l d e r ( ) 29 / 40
  10. 実際やる こ と 「 どんな項目にどんな値 が 設定で き る か」

    を定義 に を実装 それらの設定項目 が 外 か ら入って く る こ とを前提 にサービスを定義 か ら来た設定をパラメータとして 登録し 、 それを でサービスにイ ンジェクト (他にもやり方は あ ります が ) D e p e n d e n c y I n j e c t i o n \ C o n f i g u r a t i o n g e t C o n f i g T r e e B u i l d e r ( ) c o n f i g . y m l s e r v i c e s . y m l 30 / 40
  11. まとめ は各バンドルのサービス定義に設定を 注入して い る 設定項目は各バンドルの で定義され て い る

    自分でバンドルを作って公開するために特別やら な き ゃ いけ な いこ とって実は こ れ ぐ ら い c o n f i g . y m l D e p e n d e n c y I n j e c t i o n \ C o n f i g u r a t i o n 35 / 40
  12. お ま け 「 でサービス定義に外 か ら設定を注入 する 」 と表現して

    き ました が Symfony 的には こ れは 「 サービスコンテナの拡張 ( Extension ) 」 と いう 概念です サービスコンテナは奥 が 深 い &めっちゃよ く 出来 てて知るほどに学び があ ります c o n f i g . y m l 37 / 40
  13. お ま け 「 でサービス定義に外 か ら設定を注入 する 」 と表現して

    き ました が Symfony 的には こ れは 「 サービスコンテナの拡張 ( Extension ) 」 と いう 概念です サービスコンテナは奥 が 深 い &めっちゃよ く 出来 てて知るほどに学び があ ります しっ か り学びた い 人は … c o n f i g . y m l 38 / 40