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

62
Zend Framework2 について ZF1ZF2の違いをご紹介 TDC-PHP 勉強会 #24 2013 02 23 会場:ソシラボ 早坂 貴大 株式会社 瀧園 13223日土曜日

description

ZF1とZF2の違いについてざっくばらんに適当に書いています。 DIとかEventManagerとか難しいこと言ってますが、作ってる人もよくわかっていません\(^o^)/

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

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

Zend Framework2について

ZF1とZF2の違いをご紹介

TDC-PHP勉強会 #24 2013年02月23日会場:ソシラボ

早坂 貴大株式会社 瀧園

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

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

達さん、ありがとうございます。

謝辞

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

本日の内容は後日PDF形式で公開します。

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

自己紹介株式会社瀧園にてお仕事

よく訓練された社畜PHPer

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

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

Zend Framework歴

1.6系から使用を開始

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

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

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

ZFかわいいよZF

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

はじめに

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

紹介していきます。

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

セッションの流れ

インストール方法の違い

初期画面の違い

パフォーマンスの違い

ZF1とZF2の変更点

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い

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

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

$ zf create rpoject app

~ZF1のインストール方法~

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い

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

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

$ zf create rpoject app

~ZF1のインストール方法~

ZF1のファイル容量が大きくDL後に展開してとか手間が多い\(^o^)/

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

Composerでインストール!

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

Composerでインストール!Composer?

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

Composerでインストール!

Composer?

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

Composerでインストール!

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

Composerでインストール!

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

これだけでインストール完了!☆(ゝω・)vキャピ

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

php composer.phar create-project

--repository-url="http://packages.zendframework.com"

zendframework/skeleton-application

プロジェクト作成の命令

インストール元URLの指定

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

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

zendframework/skeleton-application

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

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

zendframework/skeleton-application

ちなみに・・・

symfonyもComposerから入る「らしい」 https://packagist.org/explore/

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

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

zendframework/skeleton-application

さらにちなみに・・・

symfony 318,023

zendframework 100,714

ダウンロード数

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

インストール方法の違い~ZF2のインストール方法~

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

zendframework/skeleton-application多すぎワロエナイ

\(^o^)/13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

初期画面の違い

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

初期画面の違い~ZF1の初期画面~

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

初期画面の違い~ZF1の初期画面~

ダサい

( ゚д゚)

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

初期画面の違い~ZF2の初期画面~

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

初期画面の違い~ZF2の初期画面~

かっこいい!

(゚∀゚)

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

初期画面の違い

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

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

引用元

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

利用リソース

1.11.11 ZendSkeltonApplication(Clone by GitHub)

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測方法

Apacheを再起動後、5秒間待つ ZF1の計測を開始・結果を書き出す Apacheを再起動後、5秒間待つ ZF2の計測を開始・結果を書き出す 出力結果を元にGNUPlotでグラフを書き出す

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測内容

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測結果

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測結果

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測結果

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

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測結果

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

が13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

パフォーマンスの違い

計測結果

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

ZF2はZF1に比べて機能を多く実装しているのと、

ClassMapAutoloadのキャッシュやApplicationCacheなどで早くなる

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点

全部違う

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~変更点の詳細~

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~Zend_ApplicationがZend\Mvcへ~

Zend_ApplicationがZend\Mvcに変わったのは、よりModel、View、Controllerとしての位置付けを

強くするため(だと思う)。

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~Zend_ApplicationがZend\Mvcへ~

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

Zend\Mvc\Application::runに集約されEventManagerが利用されるようになった

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

EventManagerとは?

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

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

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

EVENT_BOOTSTRAP EVENT_DISPATCH EVENT_DISPATCH_ERROR EVENT_FINISH EVENT_RENDER EVENT_RENDER_ERROR EVENT_ROUTE

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

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

実行イベントの種類

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

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

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~ EventManagerによるイベント管理~

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

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

DependencyInjectionとは?

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

日本語で訳で

依存性の注入

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

日本語で訳で

依存性の注入

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ZF1とZF2の変更点~DependencyInjection~

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

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

まとめ

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

まとめ

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

13年2月23日土曜日

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

TDC-PHP勉強会 #24 Zend Framework2について

ご清澄ありがとうございました

http://bit.ly/XhRieBhttp://bit.ly/Z6W6DShttp://bit.ly/XYaVHS

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

13年2月23日土曜日