Zend Frameworkでob_gzhandlerを使用する。


Firebug用YSlowプラグインが出たことにより、またhttpレスポンス圧縮の話題が再燃しているような気がします。(参考
Apache側でmod_gzip,mod_deflateが設定できれば良いのですが、レンタルサーバなどでは設定できないことが多いです。そういった場合にはPHPでアウトプットを圧縮して送信することができます。方法としては主に

  • php.iniの設定でzlib.output_compression を有効にする。
  • ob_start()のコールバック関数 ob_gzhandler を使用する。

があります。

zlib.output_compressionに関してはとても簡単で、php.iniに

zlib.output_compression = On

の行を入れるだけです。おそらくコメントアウト状態で入っているので、

#zlib.output_compression = Off

コメントアウトを外し、OffをOnに変更するのが簡単です。
これで通常のPHP出力は、圧縮されてクライアントに送信されます。
#この設定はzlib 拡張モジュールがPHPに組み込まれている必要があります
また、zlib.output_compression_level というものがあり、これで圧縮率を変更できるようです。

zlib.output_compression_level = 1

ただ、この設定は(マニュアルを確認すると)変更の可否がPHP_INI_ALLとなっているものの、スクリプト上から変更できない場合があります。
(php.iniで zlib.output_compression = On にされているものをスクリプトでOffにすることはほとんどの場合で可能なようですが・・・)
その場合は ob_gzhandlerを使うしかありません。

Zend Frameworkの出力はob_start()で制御されています。
ob_gzhandlerを使用するには、
[php]
ob_start(“ob_gzhandler”);
[/php]
と、ob_startの引数としてコールバック関数名(ob_gzhandler)を渡すのですが、Zend Frameworkのどこに埋め込みましょう?
使用している箇所はディスパッチャの中ですが、しかし、Zend Framework本体に手を入れるのはあまり好ましくありません。(まだまだバージョン更新が激しいですから:-) 。仕様もいつガラっと変えてくるかわかりません)
じゃあ、ob_startまわりを継承、委譲して作る、というのもよいのですが、ob_start()のマニュアルを見てみると、

出力バッファはスタッカブルであり、このため、他の ob_start() がアクティブの間に ob_start() をコールすることが可能です。この場合、 ob_end_flush() を適切な回数コールするようにしてください。 複数の出力コールバック関数がアクティブの場合、 ネストした順番で逐次連続的に出力がフィルタ処理されます。

とありますので、起動ファイルでDispatchに渡す前にob_startしてしまいましょう。
[php]
ob_start(“ob_gzhandler”);
Zend_Controller_Front::run(‘/path/to/app/controllers’);
[/php]

無事、圧縮されましたでしょうか。

関連する記事:

Leave a comment ?

71 Comments.

  1. Zend Framework内でSmartyを使っていれば、Smarty中でもob_start()が走っていますね。

  2. Ambien cr. - trackback on 2010/10/8 金曜日 at 20:43:10
  3. 単に したい欲望あなたの記事のようにあると言う驚くべき。 | 単にあなたのポストで鮮明透明性がある クールと私は可能性 |この主題の専門家あなたがしているあなたがあると仮定します。 ファイン今後のポストに| 更新日まで保つために| | フィードRSSフィード私はあなたをつかむためにあなたの許可を持つましょう許可。おかげで百万と継続 お願い喜ばしい仕事。あなたは私の心を読んで、そのような

  4. 私は好き。おそらく、あなたはこれを続けることができましたか?このトピックでは、非常にほとんどの人々のためにイライラされるのに対し

  5. は私の友人からこのウェブサイトを聞きました。彼はここに私を指摘し、私は私が必要なものを見つけるだろう私を知らせました。彼は正しかったです!私は私が持っていたすべての質問を取得し、答えました。でも、それを追求する時間はかかりませんでした。あなたは私のような個人のためのそれはそう単純で行われているという事実を崇拝。

  6. !私はしばらくの間、良好なインターネットビジネスのアイデアを思い付くしようとしてきました。その代わりに、私は多くはそれが始めるためにことを必要としない場合があります完全なインターネットベースのビジネスとは対照的に、このアイデアは、たくさんのお金を必要とするための種類の方法で吸う大きな非インターネットビジネスのアイデア、が出ています。でも、私はあきらめていませんよ。私は最近、私は私の会社を開始するために私の手順を文書化する予定のブログを開始しました。私はそれがやる気に私を維持し、それを維持するために私を強制すると考えました。私もそれが自分の目標を達成しようとして維持するために読者に動機を与えることを願っています。ところで、私はあなたのサイトが大好きです。私は面白いブログの私のリストに追加されます。カルメン@

  7. 私の仲間が私のためにこのブログをブックマークして、私は過去数時間のためにそれを通過してきました。これは本当に私たちのクラスのプロジェクトのために私と私の友人の利益のために起こっています。ところで、私はあなたが書く方法をお楽しみください。

  8. 。彼らのようなスパムメッセージの怒りのライターは、消費者を困らせる場合、私は疑問に思っていますか?私は心から思考のこのコレクションは無期限スパムなしで残ることを希望に対して期待しています。ご入力いただき、ありがとうございます。私はあなたの仕事に感謝します。こんにちは

  9. 。 明らかにこの上の時間たくさんの あなたが持っている可能性があります。 素敵やりました!既に知っているこの問題に関する知識の豊富な人々を探し出しすることが面倒

  10. ?何育てたり議論さNEVEするために使用することは変更されました。率直に言って、それは私たちが変化を見る時間についてです。

  11. 兄は私でしょう、おそらくこのよう提案しました。彼はかつて完全に適切な右でした。これは、提出真 作成製。私はこのために費やしていた時間詳細あなたはどのように 信じることができません!ありがとう! 述べており、いくつかの珍しいケースでは、自殺はかもしれない起こる。何

  12. !彼らはハッカーから保護するために、任意のプラグインを作る場合、あなたは知っていますか?私は上に懸命に働いてきたすべてのものを失うことについてちょっと偏執的です。任意の提言?これについて認識へのバンドルが顕著にあり

  13. こんにちは私の友人)=ありがとうございます!私はこのポストであることを言いたい顕著、良い書かれており、含む約すべての重要なに関する情報。 はるかに多くをこのような記事を私が見てみたいと思います。

    • It was a real contentment getting to your site the other day. I got here now hoping to discover interesting things. I was not disaepointpd. Your ideas upon new tactics on this subject matter were topical and a great help to me personally. Thank you for making time to create these things and then for sharing your notions.

  14. どのようにこのブログがこのクールを見て作りました。あなたがチャンスを得ると、あなたの知恵を共有している場合は、私に電子メールを送って下さい。 Idは感謝して。

  15. 回収不能アルタBUONA失望クスクスのレンジャーtalamini gianini Daisiを示し、そのない対象は、普段はあまり注意を与えるが、これは私の注意を引きました。

  16. 私は役立つ貴重なを好き。 ブログをブログ、ここで再度確認し、あなたをブックマーク。 私は 必ず 私がします たくさんの新しいもの右ここ! 幸運を祈る次のために!私のために| 情報情報最も | のうちの1

  17. リアル有益と素晴らしい 話題の解剖学的構造材料、今では、ユーザーの快適な(だ:。。

  18. ここで、それにもかかわらず、私はこれが公開信じられていた優秀。あなたがいるときに、あなたが既に乾杯でないこと|あなたは可能性があります!によって| ウェブログ

  19. 、あなたはいくつかの良い点を説明しました。私はブックマークあなたの投稿したいです。私はおいしいとYahooブックマークにあなたを救いました。私はあなたのブログに再訪し、より多くの記事を検討しようとします。

  20. 私は 通常実行するブログを及びI 実際にあなたを認識しています。コンテンツ素材を ライトアップ 実際私の興味をピーク私はへのブックマークあなたのウェブサイトつもりサイトと続ける新しい詳細

  21. !あなたは明らかに、この上にとても大きいタスクを探査多大をしました。私もブックマークウェブページに保証するつもりです!それを

  22. 。イムはあなたに指を指していないけれども、私はそれが注目してイマイチそのそこに他の人だと思います。

  23. Youreのように右。あなたとそこにイム。誰もがそれを横切って来る場合、あなたのブログは、読み取り間違いなく価値があります。今アイブ氏は、この全体の新しいビューを獲得したので、イムは幸運私でした。私は、この問題は非常に重要なので、ユニバーサルたことを実現していませんでし。あなたは確かに私のための視点でそれを置きます。

    • My Chrome starz to freeze after enabling extensions. Coz one of the extension was doing something loopy in the baon.rcukdgI disabled them all and it's working fine now.

  24. はこのためにどうもありがとうございます!私はこれは、長い時間のためのポストによって移動されていません!あなたはそれがブログにあらゆる手段を、それを持っています。人が聞く必要があると言うこと何かを持っているだけでなく、Y​​oureのは間違いなく誰か。良い仕事を続けます。人々を鼓舞し続けます!

  25. をI 非常にに喜ん見つけるこののために求めて:だけでなく適切お気に入りに保存

  26. クレスピシェラックsmackmelon bukovsky宗主権gaetz masenずんぐり課金三木moevemansが再びあなたのウェブページを訪問するニース

  27. GR8 resrch仲間私はyouveはいくつかの実際に興味深いポイントを作成したと思う

  28. メジャーリーグの本、私はその激突を行う色か悪い文法場合知らないが、このブログは恐ろしいです!私は、しかし、あなたは、おそらくこの主題に少し余分な力を入れていますが、知ったかぶりか何かのように聞こえるしたいいけない、意味しています。その本当に興味深いのは、しかし、あなたは男、すべてでそれをうまく特徴付けるいけません。とにかく、私の言語で、通常はこのような多くの十分な供給がありません。イムが気になる投稿されてい

  29. また、友情、誕生日、愛のように巨大なSMSコレクションを取得し、はるかにすることができましたが、それは確かに私はあなたがここに持っているものと同じくらい面白いと興味をそそられるネット上で何かを発見するための重要な1つは稀に

  30. 私はこのブログをブックマークしています。私はこれについての詳細を知るために本当に興味を持っているでしょう。ありがとう!

  31. アン魅力的な読み取りは、私はかもしれない完全に同意していないが、あなたは、いくつかの極めて作るのですか、有効なポイントを。

  32. スポットを開始することができます|このライトアップの仕事関数を、I 実際この素晴らしい信じるウェブサイト要求多くの はるか考察。数多く| もう一度再び 素晴らしい読むために多くの、契約をはるかにより私は一度になりがちよ。 非常に 良いポストおやおや

  33. いただきありがとうございます。すべてWeb上でこの情報を探していました。ブリリアント

  34. 脱線、私は過去のカップルの時間のためにそれを読んされています。これは本当に私たちのクラスのプロジェクトのために私と私のクラスメートを支援しようとしています。ところで、私はあなたが書く方法をお楽しみください。こんにちは

  35. ありがとうナルシシズム。どこに誰もがクラフトの彼らの通常の完全な方法で情報のようなものを得ることができますか?私は、着信週デモを持っている、と私はそのような情報を探しています。こんにちは

  36. 私はこのようなウェブサイト 非常に かなりのではるか見事情報。

  37. 私は神ダムの事を知っているだろう。私が知っていることは、当該分野の言語は、この世界の外にあるということです。

  38. 手、リンゴのアプリストアはマイルで勝ちます。そのZuneのための一握りのはむしろ悲しい選択対アプリのすべての種類の巨大な選択。マイクロソフトは、特にゲームの領域で、計画を持っていますが、イムはないことを確認IDがこの態様はあなたにとって重要である場合には、将来に賭けたいです。 iPodは、その場合のより良い選択です。こんにちは

  39. youreのこれを維持するために見出していることを教えて下さい!そのように優れたので、重要な。私はあなたから追加の読み取りを待つ傾けます。あなたがそのように、実質的に知っている人は、あなたが言っているかに耳を傾けるようにする方法を知っているように私はちょうど感じます。このブログは逃しなるにはあまりにもクールです。本当に素晴らしいもの、。 、それを保管してくださいしてください!

  40. 私は-notify私をクリックしました。そのサービスから私を削除することができ|任意のアプローチは、あなたがされますあなたがよありますか?ありがとう!

  41. きれい概念を一緒に入れて、そのために理解されなければならないこれはです。何を説明していただきありがとうございますと言うことにします。

  42. 私は本当に楽しん{探し|検索:貴重な有益ここでのものので、かなりかなり多くがのでウェブサイト

  43. 完全にこの問題にどのようなあなたの姿勢を理解しています。私は細かい詳細の数に一致しないかもしれないが、私はあなたがおそらくそれを説明する素晴らしい仕事をしたと思います。確かに自分自身で分析し、それを有する打ちます。ありがとうございます。とにかく、私の言語で、このような多くの十分な供給がアレント。ここにコメントは素晴らしいです

  44. は見たことがありません。このライトアップと他のブログに比べて、これは間違いなくあったトップ インターネットサイト。保存されます。あなたのブログの記事| とののカップル調べるまもなく

  45. 白ワインは非常にために知られている取得取得 非​​常に官能的で上品なアルコール飲料。黄色や黄金色で、主にアクセス可能それは本当にです。白ワインは広く、そのおいしい味のすべての大陸に認識されています。 1軽い食事がおいしい見える生成するようにいつでも白肉と白ワインをペアにすることができます。しかし、より良いのためにすべてのあなたのスターターをサポートするために、我々はまず第一に、この白ワインのシェフを組織しましたマージワイン。

  46. 私は道をあなたのブログ記事を調べるためもう一度長期以内とすぐに戻ってきます。ありがとう!

  47. すごい迫力!私だ本当にこのテンプレート/テーマ掘りサイト。 それであるシンプル、しかしに有効。 のプレンティ回それは使い勝手や外観の間、その「完璧なバランス」を得るために挑戦。私は必要があるはずであるにはあなたがやったと言う優秀これで仕事。 ほか、ブログ負荷信じられないほど 速いインターネットエクスプローラ上で私のために。優秀ウェ!グーグル 、および| ウェブログ

  48. 私はこのポストにとても感謝してあなたのブログイムで使用して、テーマのyoureを愛し、私たちとそれを共有するためにあなたに多くのことを感謝します。間違いなく、これらのページのクローズトラックを維持します。こんにちは

  49. こんにちはバディ。私は、ほとんどのに純粋にのみ、このような記事だけでなく、Webページのすべてのものを愛し、私!その記事は真実で大丈夫わかりやすく簡単に理解書かれており、同様に理想的です。ワンズワードプレスのテーマは、同様に印象的です!明らかに、私はその可能ダウンロードでなければならないところを見つけ出すために素晴らしいことでしょう。いい仕事を維持する方法は、特定のこと。あなたが最も、インターネット上のあなたとロットより少ない数のスパマーとして、ウェブ上のすべての所有者であってもより多くのこれらのタイプを必要としています。素晴らしい仲間。それは多くの場合、あなたがこのような記事に出くわすことはありません

    • Thank you for 30 years of sewing education and inna.rptiosiI enjoy all your shows and the one I have watched several times is the 30 minute doll clothes. I have 4 small grand daughters and I make a lot of doll clothes. I so enjoy going to Sewing weekend in May. My best friend and I make it a girls weekend and we learn so much, and have a lot of laughs. Thank you for bringing such Joy in my life and being a friend. I hope there will be many more years of Sewing with Nancy.

  50. この記事はちょっとフォローするのは難しいのですが、tom268sコメントが私のために少しは幾分良好それをクリアしました。

  51. ?私は、このWebページへのリンクが含まれている場合、債務決済

  52. このブログサイトは非常に良いです!どのように私はこのようなものを作ることができます!うわー

  53. は私は正確に感謝を言うことを希望します。 自信を持って確認してくださいそれらの不在内で私はおそらくしようとしていることができるものではない| 私は私は 提案に関するあなたで貢献このようにトピック。それは、私の見解で悲惨な状態になっていたあなたがそれを処理し、よく書かれた戦術を表示することができるという、 を作成 |喜び私は以上にわたって泣き。 非常ご指導に感謝、あなたが何を信じられない実現信じて仕事あなたがしている |指示|と他の人を他の人 パフォーマンスをしています インターネットサイト | インターネットウェブの援助。ほとんどの場合、あなたは私たちのいずれかに遭遇していません。巨大なレビューのために申し訳ありません

  54. Im based in London have worked as a secretary for more than 10 years and have an HND in Business Studies but am tired of admin work and office politics and would like to do something more creative- change careers.. . I write in my spare time and have attended an advanced writing course for the past 3 years and am writing a novel. I would like to see if I could train to teach creative writing in further education colleges etc or and English /English literature. I would also be grateful if I could get any info on what qualifications you need to be able to teach English as a first language and Basic literacy skills and ESOL..

  55. にはどうすればワイヤレスNルータの範囲を拡張することができますか?私はエクストリームNハンドヘルドルータ(DLINK)を持っています。私は無線信号から範囲を拡大する必要があります。私は新しいG信号のためにそれを行う方法を発見します。私は、N個の記号のためにそれらを実行する方法を知りたいです。それは、通常のNルータの可能性メイク使用時にリピータがあります。もしそうなら、どれだけ私はそれらを設定します。情報をありがとう。

  56. 単にここで笑って、訪問者が共有すること(愛:。、ところで優れたスタイル ‘Audacityは、はるか大胆さと常に大胆 ‘ジョルジュ·ジャック·ダントンによって私の配偶者を

  57. 私はGoogleであなたのブログのウェブサイトを発見し、あなたの初期のポストの数を調べます。素晴らしいが動作まで維持するために進んでください。私のMSN情報リーダーにRSSフィードを私はちょうど余分な。その後あなたから余分な勉強に前方の中で検索!この記事は、geniunelyアイオープナーであることが判明しているhuan​​hangrn

  58. 。私はネット上で見たに 問題は、と多くの人がに沿って一緒に行く ウェブサイト。

  59. 、二輪車について何を愛して!あなたの人生、通常入手しにくい多くの時間である選択についての多くの偉大なF

  60. はそう彼女に感謝多くの!どのような起業家グルーヴィーな夜の貿易を開始するとの取引まで – ダブテールクレイジー、祭壇画ではなく、習慣的な節減のように行動する前に、この行は動きです。

  61. This is really attention-grabbing, You’re ann excessively professional blogger.
    I’ve joined your feed and stay uup for loooking for moe oof your fantatic post.
    Also, I’ve shared ykur website in my social networks!

    My web blog cheap nfl jerseys china (http://www.nfljerseys-china.com)

  62. Your style is really unique in comparison to other folks I’ve read
    stuff from. Thanks for posting when you’ve got the opportunity, Guess I’ll just book
    mark this web site.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

Trackbacks and Pingbacks: