SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
TDC-PHP勉強会 #24                    2013年02月23日
                                  会場:ソシラボ




              Zend Framework2
                   について
                 ZF1とZF2の違いをご紹介



  株式会社 瀧園
  早坂 貴大



13年2月23日土曜日
謝辞


        会場準備・取りまとめなどを行なっていただ
        いた皆さん、本日はありがとうございます。
        また、今回発表の場を設けていただいた、安
                 達さん、ありがとうございます。



TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
本日の内容は後日
                 PDF形式で公開します。




TDC-PHP勉強会 #24            Zend Framework2について
13年2月23日土曜日
自己紹介

                   株式会社瀧園にてお仕事

                   よく訓練された社畜PHPer

                   主にWebサービスの何かをやっ
                   てます

                   @Nully
                   http://blog.nully.org/
                    現在移動予定



TDC-PHP勉強会 #24                   Zend Framework2について
13年2月23日土曜日
Zend Framework歴

              1.6系から使用を開始

              業務ではライブラリとしてもFWとしても利用したこと有り

              ZF発見まではCakePHPでウマウマしてましたごめんなさい

              PHPの構造体を勉強出来るようになったきっかけは彼のお
              かげ.../////

              ZFかわいいよZF

              でも今はFuelPHPを案件で使ってる...\(^o^)/



TDC-PHP勉強会 #24                           Zend Framework2について
13年2月23日土曜日
はじめに


              ZF2とZF1の違いを簡単に比較しつつ、
                 ZF2であたらに盛り込まれた機能を
                    紹介していきます。




TDC-PHP勉強会 #24                   Zend Framework2について
13年2月23日土曜日
セッションの流れ

              インストール方法の違い

              初期画面の違い

              パフォーマンスの違い

              ZF1とZF2の変更点




TDC-PHP勉強会 #24                Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                    ∼ZF1のインストール方法∼

                     http://bit.ly/POQMDD
                   からファイルをDLして展開する。



                    展開したファイルの「zf.sh」
                      からプロジェクトを作成

                 $ zf create rpoject app

TDC-PHP勉強会 #24                             Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                    ∼ZF1のインストール方法∼

                     http://bit.ly/POQMDD
                   からファイルをDLして展開する。
        ZF1のファイル容量が大きく
    DL後に展開してとか手間が多い\(^o^)/
                    展開したファイルの「zf.sh」
                      からプロジェクトを作成

                 $ zf create rpoject app

TDC-PHP勉強会 #24                             Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                   ∼ZF2のインストール方法∼




                 Composerでインストール!




TDC-PHP勉強会 #24                      Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                   ∼ZF2のインストール方法∼




                    Composer?
                 Composerでインストール!




TDC-PHP勉強会 #24                      Zend Framework2について
13年2月23日土曜日
Composer?
                 インストール方法の違い
                    ∼ZF2のインストール方法∼


                     新しく作られたPHPライブラリなどをインストー
                     ルするための機構。
                 Composerでインストール!
                    Linux系OSのnpmを参考に作られているいて、ラ
                     イブラリ同士の依存関係を解消し、コマンドか
                     ら一発ですべてが入る。




TDC-PHP勉強会 #24                        Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                   ∼ZF2のインストール方法∼


                 Composerでインストール!

  php composer.phar create-project
   --repository-url="http://packages.zendframework.com"
   zendframework/skeleton-application path/to/install




TDC-PHP勉強会 #24                               Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                   ∼ZF2のインストール方法∼


                 Composerでインストール!
              これだけでインストール完了!
  php composer.phar create-project
                  ☆(ゝω・)vキャピ
   --repository-url="http://packages.zendframework.com"
   zendframework/skeleton-application path/to/install




TDC-PHP勉強会 #24                               Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                    ∼ZF2のインストール方法∼


   php composer.phar create-project
                     プロジェクト作成の命令


   --repository-url="http://packages.zendframework.com"
                            インストール元URLの指定


   zendframework/skeleton-application path/to/install
              インストールパッケージの指定



TDC-PHP勉強会 #24                               Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                       ∼ZF2のインストール方法∼



                 zendframework/skeleton-application


          https://packages.zendframework.com/
                  からパッケージ名をコピペ




TDC-PHP勉強会 #24                                    Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                   ちなみに・・・
                       ∼ZF2のインストール方法∼



                 zendframework/skeleton-application
          symfonyもComposerから入る「らしい」
           https://packagist.org/explore/
          https://packages.zendframework.com/
                     からパッケージ名をコピペ




TDC-PHP勉強会 #24                                    Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                 さらにちなみに・・・
                       ∼ZF2のインストール方法∼
                           ダウンロード数


                 zendframework/skeleton-application
                 symfony 318,023
          https://packages.zendframework.com/
                  からパッケージ名をコピペ
     zendframework 100,714

TDC-PHP勉強会 #24                                    Zend Framework2について
13年2月23日土曜日
インストール方法の違い
                       ∼ZF2のインストール方法∼


                        多すぎワロエナイ

                 \(^o^)/
                 zendframework/skeleton-application


          https://packages.zendframework.com/
                  からパッケージ名をコピペ




TDC-PHP勉強会 #24                                    Zend Framework2について
13年2月23日土曜日
初期画面の違い




TDC-PHP勉強会 #24             Zend Framework2について
13年2月23日土曜日
初期画面の違い
                  ∼ZF1の初期画面∼




TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
初期画面の違い
                  ∼ZF1の初期画面∼


                    ダサい


                 ( ゚д゚)

TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
初期画面の違い
                  ∼ZF2の初期画面∼




TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
初期画面の違い
                  ∼ZF2の初期画面∼


                  かっこいい!


                 (゚∀゚)

TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
初期画面の違い



          Twitter Bootstrapを利用しているので
              Webサービスを作るときのScaffoldを
                 作るのにめちゃくちゃ最適化された




TDC-PHP勉強会 #24                   Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い




TDC-PHP勉強会 #24                Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い


                          引用元
              http://www.enrise.com/2012/02/
              zend-framework-2-performance/




TDC-PHP勉強会 #24                          Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い




                 マシンスペックなどは割愛




TDC-PHP勉強会 #24                  Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                           利用リソース




                 1.11.11      ZendSkeltonApplication
                                (Clone by GitHub)




TDC-PHP勉強会 #24                               Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                      計測方法

              Apacheを再起動後、5秒間待つ

              ZF1の計測を開始・結果を書き出す

              Apacheを再起動後、5秒間待つ

              ZF2の計測を開始・結果を書き出す

              出力結果を元にGNUPlotでグラフを書き出す

TDC-PHP勉強会 #24                    Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                        計測内容


                 5の同時接続、2000リクエストをかける
                 20の同時接続、2000リクエストをかける
                 40の同時接続、2000リクエストをかける
                 80の同時接続、2000リクエストをかける



TDC-PHP勉強会 #24                     Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                    計測結果




      5の同時接続、2000リクエスト   20の同時接続、2000リクエスト


TDC-PHP勉強会 #24                     Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                    計測結果




     40の同時接続、2000リクエスト   80の同時接続、2000リクエスト


TDC-PHP勉強会 #24                     Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                      計測結果


                 これらの結果から言えることは
                  4秒程処理が遅くなっている



     40の同時接続、2000リクエスト   80の同時接続、2000リクエスト


TDC-PHP勉強会 #24                     Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い




                   が
                    計測結果




     40の同時接続、2000リクエスト   80の同時接続、2000リクエスト


TDC-PHP勉強会 #24                     Zend Framework2について
13年2月23日土曜日
パフォーマンスの違い

                    計測結果
           ZF2はZF1に比べて機能を
            多く実装しているのと、
       ClassMapAutoloadのキャッシュや
       ApplicationCacheなどで早くなる


     40の同時接続、2000リクエスト   80の同時接続、2000リクエスト


TDC-PHP勉強会 #24                     Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点




TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点




                 全部違う

TDC-PHP勉強会 #24                 Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点




                 もうちょっと詳しく・・・




TDC-PHP勉強会 #24                  Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                         ∼変更点の詳細∼




                 Zend_ApplicationがZendMvcへ
                 EventManagerによるイベント管理
                 新しく追加されたDependencyInjection




TDC-PHP勉強会 #24                                Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼Zend_ApplicationがZendMvcへ∼



       Zend_ApplicationがZendMvcに変わったのは、
       よりModel、View、Controllerとしての位置付けを
               強くするため(だと思う)。




TDC-PHP勉強会 #24                                  Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼Zend_ApplicationがZendMvcへ∼



                     Zend_Controller_Front::dispatchが
                     処理を行なっていた




                     ZendMvcApplication::runに集約され
                     EventManagerが利用されるようになった


TDC-PHP勉強会 #24                                  Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼




         EventManagerとは?



TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼




              ZF2で基本的に利用される
                イベント管理クラス


TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼ EventManagerによるイベント管理∼


                 URLを元にControllerを決定したり
                 実際の処理を実行したり
                 すべての処理を終了したり




                 これら全てをイベントとして管理

TDC-PHP勉強会 #24                               Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼


                     EVENT_BOOTSTRAP
                     EVENT_DISPATCH
                     EVENT_DISPATCH_ERROR
                     EVENT_FINISH
                     EVENT_RENDER
                     EVENT_RENDER_ERROR
                     EVENT_ROUTE


TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼




        $events->trigger(MvcEvent::EVENT_ROUTE,
                $event, $shortCircuit);




TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼




        $events->trigger(MvcEvent::EVENT_ROUTE,
                $event, $shortCircuit);



                     実行イベントの種類



TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼




        $events->trigger(MvcEvent::EVENT_ROUTE,
                $event, $shortCircuit);


                 イベントの対象に関する情報
              (EventDescriptionインスタンス)


TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                 ∼ EventManagerによるイベント管理∼




        $events->trigger(MvcEvent::EVENT_ROUTE,
                $event, $shortCircuit);



                 イベント終了の条件(関数)



TDC-PHP勉強会 #24                              Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼DependencyInjection∼




        DependencyInjection
              とは?


TDC-PHP勉強会 #24                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼DependencyInjection∼




                    日本語で訳で

                 依存性の注入

TDC-PHP勉強会 #24                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                                ∼DependencyInjection∼




               日本語で訳で
      コンポーネント間の依存関係をプログラムのソースコードか


                      依存性の注入
      ら排除し、外部の設定ファイルなどで注入できるようにする
      ソフトウェアパターン
              Wikiより:http://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5




TDC-PHP勉強会 #24                                                                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼DependencyInjection∼




                    日本語で訳で

                 依存性の注入

TDC-PHP勉強会 #24                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼DependencyInjection∼




TDC-PHP勉強会 #24                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                      ∼DependencyInjection∼



                   毎回記述しなければならなかったり、
                 中継クラスを呼び出してインスタンス管理して...
                  とかやるのがとても大変(というか面倒)




TDC-PHP勉強会 #24                                Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼DependencyInjection∼




TDC-PHP勉強会 #24                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                  ∼DependencyInjection∼




TDC-PHP勉強会 #24                            Zend Framework2について
13年2月23日土曜日
ZF1とZF2の変更点
                          ∼DependencyInjection∼



              依存性解釈の設定を施すことで、
                コードの記述量が減る!

    詳しく知りたい方はhttp://framework.zend.com/manual/2.1/en/tutorials/quickstart.di.htmlへ!




TDC-PHP勉強会 #24                                                      Zend Framework2について
13年2月23日土曜日
まとめ




TDC-PHP勉強会 #24         Zend Framework2について
13年2月23日土曜日
まとめ



                     EventManagerと
                  DependencyInjectionを
                 マスターすればZF2はほぼ完璧!




TDC-PHP勉強会 #24                  Zend Framework2について
13年2月23日土曜日
ご清澄ありがとうございました


                 利用した画像                 パフォーマンスについて
                 http://bit.ly/XhRieB   http://bit.ly/wMvkfs
                 http://bit.ly/Z6W6DS
                 http://bit.ly/XYaVHS




TDC-PHP勉強会 #24                                            Zend Framework2について
13年2月23日土曜日

Mais conteúdo relacionado

Destaque

15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
 
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
 
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISPYamaYamamoto
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料Yuji Otani
 
Phalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォームPhalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォームryo-utsunomiya
 
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoyaSymfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoyaHidenori Goto
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリングTakako Miyagawa
 
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るためにSymfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るためにAtsuhiro Kubo
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデートtomohiro kitaura
 
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡Rina Fukuda
 
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントCode igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントnoldor
 
Symfony2でMongoDBと仲良くする方法
Symfony2でMongoDBと仲良くする方法Symfony2でMongoDBと仲良くする方法
Symfony2でMongoDBと仲良くする方法Koji Iwazaki
 
PSR-1 と PSR-2 を 5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解するPSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を 5分でざっくり理解するWataru Terada
 
Phpをいじり倒す10の方法
Phpをいじり倒す10の方法Phpをいじり倒す10の方法
Phpをいじり倒す10の方法Moriyoshi Koizumi
 

Destaque (20)

15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
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
 
PHP勉強会 #51
PHP勉強会 #51PHP勉強会 #51
PHP勉強会 #51
 
受託開発のPhalcon
受託開発のPhalcon受託開発のPhalcon
受託開発のPhalcon
 
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
 
Phalcon勉強会資料
Phalcon勉強会資料Phalcon勉強会資料
Phalcon勉強会資料
 
Phalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォームPhalcon + AngularJSで作る動画プラットフォーム
Phalcon + AngularJSで作る動画プラットフォーム
 
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoyaSymfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリング
 
はじめてのSymfony2
はじめてのSymfony2はじめてのSymfony2
はじめてのSymfony2
 
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るためにSymfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデート
 
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
 
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントCode igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
 
Symfony2でMongoDBと仲良くする方法
Symfony2でMongoDBと仲良くする方法Symfony2でMongoDBと仲良くする方法
Symfony2でMongoDBと仲良くする方法
 
PSR-1 と PSR-2 を 5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解するPSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を 5分でざっくり理解する
 
Phpをいじり倒す10の方法
Phpをいじり倒す10の方法Phpをいじり倒す10の方法
Phpをいじり倒す10の方法
 

Zend Framework2について〜ZF1とZF2の違いについて〜

  • 1. TDC-PHP勉強会 #24 2013年02月23日 会場:ソシラボ Zend Framework2 について ZF1とZF2の違いをご紹介 株式会社 瀧園 早坂 貴大 13年2月23日土曜日
  • 2. 謝辞 会場準備・取りまとめなどを行なっていただ いた皆さん、本日はありがとうございます。 また、今回発表の場を設けていただいた、安 達さん、ありがとうございます。 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 3. 本日の内容は後日 PDF形式で公開します。 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 4. 自己紹介 株式会社瀧園にてお仕事 よく訓練された社畜PHPer 主にWebサービスの何かをやっ てます @Nully http://blog.nully.org/ 現在移動予定 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 5. Zend Framework歴 1.6系から使用を開始 業務ではライブラリとしてもFWとしても利用したこと有り ZF発見まではCakePHPでウマウマしてましたごめんなさい PHPの構造体を勉強出来るようになったきっかけは彼のお かげ...///// ZFかわいいよZF でも今はFuelPHPを案件で使ってる...\(^o^)/ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 6. はじめに ZF2とZF1の違いを簡単に比較しつつ、 ZF2であたらに盛り込まれた機能を 紹介していきます。 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 7. セッションの流れ インストール方法の違い 初期画面の違い パフォーマンスの違い ZF1とZF2の変更点 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 8. インストール方法の違い ∼ZF1のインストール方法∼ http://bit.ly/POQMDD からファイルをDLして展開する。 展開したファイルの「zf.sh」 からプロジェクトを作成 $ zf create rpoject app TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 9. インストール方法の違い ∼ZF1のインストール方法∼ http://bit.ly/POQMDD からファイルをDLして展開する。 ZF1のファイル容量が大きく DL後に展開してとか手間が多い\(^o^)/ 展開したファイルの「zf.sh」 からプロジェクトを作成 $ zf create rpoject app TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 10. インストール方法の違い ∼ZF2のインストール方法∼ Composerでインストール! TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 11. インストール方法の違い ∼ZF2のインストール方法∼ Composer? Composerでインストール! TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 12. Composer? インストール方法の違い ∼ZF2のインストール方法∼ 新しく作られたPHPライブラリなどをインストー ルするための機構。 Composerでインストール! Linux系OSのnpmを参考に作られているいて、ラ イブラリ同士の依存関係を解消し、コマンドか ら一発ですべてが入る。 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 13. インストール方法の違い ∼ZF2のインストール方法∼ Composerでインストール! php composer.phar create-project --repository-url="http://packages.zendframework.com" zendframework/skeleton-application path/to/install TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 14. インストール方法の違い ∼ZF2のインストール方法∼ Composerでインストール! これだけでインストール完了! php composer.phar create-project ☆(ゝω・)vキャピ --repository-url="http://packages.zendframework.com" zendframework/skeleton-application path/to/install TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 15. インストール方法の違い ∼ZF2のインストール方法∼ php composer.phar create-project プロジェクト作成の命令 --repository-url="http://packages.zendframework.com" インストール元URLの指定 zendframework/skeleton-application path/to/install インストールパッケージの指定 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 16. インストール方法の違い ∼ZF2のインストール方法∼ zendframework/skeleton-application https://packages.zendframework.com/ からパッケージ名をコピペ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 17. インストール方法の違い ちなみに・・・ ∼ZF2のインストール方法∼ zendframework/skeleton-application symfonyもComposerから入る「らしい」 https://packagist.org/explore/ https://packages.zendframework.com/ からパッケージ名をコピペ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 18. インストール方法の違い さらにちなみに・・・ ∼ZF2のインストール方法∼ ダウンロード数 zendframework/skeleton-application symfony 318,023 https://packages.zendframework.com/ からパッケージ名をコピペ zendframework 100,714 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 19. インストール方法の違い ∼ZF2のインストール方法∼ 多すぎワロエナイ \(^o^)/ zendframework/skeleton-application https://packages.zendframework.com/ からパッケージ名をコピペ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 20. 初期画面の違い TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 21. 初期画面の違い ∼ZF1の初期画面∼ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 22. 初期画面の違い ∼ZF1の初期画面∼ ダサい ( ゚д゚) TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 23. 初期画面の違い ∼ZF2の初期画面∼ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 24. 初期画面の違い ∼ZF2の初期画面∼ かっこいい! (゚∀゚) TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 25. 初期画面の違い Twitter Bootstrapを利用しているので Webサービスを作るときのScaffoldを 作るのにめちゃくちゃ最適化された TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 26. パフォーマンスの違い TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 27. パフォーマンスの違い 引用元 http://www.enrise.com/2012/02/ zend-framework-2-performance/ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 28. パフォーマンスの違い マシンスペックなどは割愛 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 29. パフォーマンスの違い 利用リソース 1.11.11 ZendSkeltonApplication (Clone by GitHub) TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 30. パフォーマンスの違い 計測方法 Apacheを再起動後、5秒間待つ ZF1の計測を開始・結果を書き出す Apacheを再起動後、5秒間待つ ZF2の計測を開始・結果を書き出す 出力結果を元にGNUPlotでグラフを書き出す TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 31. パフォーマンスの違い 計測内容 5の同時接続、2000リクエストをかける 20の同時接続、2000リクエストをかける 40の同時接続、2000リクエストをかける 80の同時接続、2000リクエストをかける TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 32. パフォーマンスの違い 計測結果 5の同時接続、2000リクエスト 20の同時接続、2000リクエスト TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 33. パフォーマンスの違い 計測結果 40の同時接続、2000リクエスト 80の同時接続、2000リクエスト TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 34. パフォーマンスの違い 計測結果 これらの結果から言えることは 4秒程処理が遅くなっている 40の同時接続、2000リクエスト 80の同時接続、2000リクエスト TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 35. パフォーマンスの違い が 計測結果 40の同時接続、2000リクエスト 80の同時接続、2000リクエスト TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 36. パフォーマンスの違い 計測結果 ZF2はZF1に比べて機能を 多く実装しているのと、 ClassMapAutoloadのキャッシュや ApplicationCacheなどで早くなる 40の同時接続、2000リクエスト 80の同時接続、2000リクエスト TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 37. ZF1とZF2の変更点 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 38. ZF1とZF2の変更点 全部違う TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 39. ZF1とZF2の変更点 もうちょっと詳しく・・・ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 40. ZF1とZF2の変更点 ∼変更点の詳細∼ Zend_ApplicationがZendMvcへ EventManagerによるイベント管理 新しく追加されたDependencyInjection TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 41. ZF1とZF2の変更点 ∼Zend_ApplicationがZendMvcへ∼ Zend_ApplicationがZendMvcに変わったのは、 よりModel、View、Controllerとしての位置付けを 強くするため(だと思う)。 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 42. ZF1とZF2の変更点 ∼Zend_ApplicationがZendMvcへ∼ Zend_Controller_Front::dispatchが 処理を行なっていた ZendMvcApplication::runに集約され EventManagerが利用されるようになった TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 43. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ EventManagerとは? TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 44. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ ZF2で基本的に利用される イベント管理クラス TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 45. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ URLを元にControllerを決定したり 実際の処理を実行したり すべての処理を終了したり これら全てをイベントとして管理 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 46. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ EVENT_BOOTSTRAP EVENT_DISPATCH EVENT_DISPATCH_ERROR EVENT_FINISH EVENT_RENDER EVENT_RENDER_ERROR EVENT_ROUTE TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 47. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ $events->trigger(MvcEvent::EVENT_ROUTE, $event, $shortCircuit); TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 48. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ $events->trigger(MvcEvent::EVENT_ROUTE, $event, $shortCircuit); 実行イベントの種類 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 49. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ $events->trigger(MvcEvent::EVENT_ROUTE, $event, $shortCircuit); イベントの対象に関する情報 (EventDescriptionインスタンス) TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 50. ZF1とZF2の変更点 ∼ EventManagerによるイベント管理∼ $events->trigger(MvcEvent::EVENT_ROUTE, $event, $shortCircuit); イベント終了の条件(関数) TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 51. ZF1とZF2の変更点 ∼DependencyInjection∼ DependencyInjection とは? TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 52. ZF1とZF2の変更点 ∼DependencyInjection∼ 日本語で訳で 依存性の注入 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 53. ZF1とZF2の変更点 ∼DependencyInjection∼ 日本語で訳で コンポーネント間の依存関係をプログラムのソースコードか 依存性の注入 ら排除し、外部の設定ファイルなどで注入できるようにする ソフトウェアパターン Wikiより:http://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 54. ZF1とZF2の変更点 ∼DependencyInjection∼ 日本語で訳で 依存性の注入 TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 55. ZF1とZF2の変更点 ∼DependencyInjection∼ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 56. ZF1とZF2の変更点 ∼DependencyInjection∼ 毎回記述しなければならなかったり、 中継クラスを呼び出してインスタンス管理して... とかやるのがとても大変(というか面倒) TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 57. ZF1とZF2の変更点 ∼DependencyInjection∼ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 58. ZF1とZF2の変更点 ∼DependencyInjection∼ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 59. ZF1とZF2の変更点 ∼DependencyInjection∼ 依存性解釈の設定を施すことで、 コードの記述量が減る! 詳しく知りたい方はhttp://framework.zend.com/manual/2.1/en/tutorials/quickstart.di.htmlへ! TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 60. まとめ TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 61. まとめ EventManagerと DependencyInjectionを マスターすればZF2はほぼ完璧! TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日
  • 62. ご清澄ありがとうございました 利用した画像 パフォーマンスについて http://bit.ly/XhRieB http://bit.ly/wMvkfs http://bit.ly/Z6W6DS http://bit.ly/XYaVHS TDC-PHP勉強会 #24 Zend Framework2について 13年2月23日土曜日