20121024 phpstudy

1,740 views

Published on

Published in: Lifestyle
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,740
On SlideShare
0
From Embeds
0
Number of Embeds
889
Actions
Shares
0
Downloads
2
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

20121024 phpstudy

  1. 1. 2012.10.24 (Wed)橋口 誠 a.k.a. gusagi
  2. 2.  menue株式会社 所属 • ケータイ / スマートフォンサイトとか作ってます • 最近は社内勉強会なども色々やってます 『パーフェクトPHP』書きました 以前はPHP勉強会@東京の幹事やってました
  3. 3. はじめにAsset FilterDispatcher Filtersまとめ
  4. 4. 「資産」「財産」の意 ↓css, js, 画像などを指す
  5. 5. js, 画像などもプログラム経由で出力 css, している 更新が滅多に行われないのにキャッシュが 使われない 不要な記述でファイルサイズが大きくなっ ている ファイル取得に大量のリクエストを送って いる
  6. 6. css, jsをgzip圧縮304 Not Modifiedの制御css, js内の文字列置換複数ファイルの一括出力
  7. 7. app/Config/core.php で フィルタを設定
  8. 8. Configure::write( Asset.filter.css‘,‘asset.php‘); Configure::write( Asset.filter.js‘,‘asset.php‘);
  9. 9. HtmlHelper::css(), HtmlHelper::js()の出力URLが変化
  10. 10. /css/example.css ↓/ccss/example.css
  11. 11. /js/example.js ↓/cjs/example.js
  12. 12. https://github.com/gusagi/WizApp/blob/develop/webroot/asset.php
  13. 13. 変数名 値$url CakeRequestクラスのオブジェクト->url$response CakeResponseクラスのオブジェクト$filters Asset.filter で設定した内容(配列型)$isCss リクエストファイルがcssかどうか(boolean)$isJs リクエストファイルがjsかどうか(boolean)
  14. 14. 最後にexitを忘れずに!
  15. 15.  Dispatcherクラスからフィルタ部分を分離 app/Config/bootstrap.phpで設定 CakePHP本体では2つのフィルタを用意 • AssetDispather  lib/Cake/Routing/Filter/AssetDispatcher.php • CacheDispatcher  lib/Cake/Routing/Filter/CacheDispatcher.phphttp://book.cakephp.org/2.0/en/development/dispatch-filters.htmlhttp://api.cakephp.org/class/dispatcher-filter
  16. 16. CakePHPが出力するレスポ ンスヘッダを改ざんデフォルト以外のContent- Typeを追加
  17. 17. app/Config/bootstrap.php で フィルタを設定
  18. 18. Configure::write( Dispatcher.filters, array( ‘AssetDispatcherEx, ‘CacheDispatcher’));
  19. 19. https://github.com/gusagi/WizApp/blob/develop/Routing/Filter/AssetDispatcherEx.php
  20. 20. css, jsの出力に手を加えたい ならAsset Filtercss, js以外の出力に手を加え たいならDispatcher Filters
  21. 21. フィルタを使ってコアコードに手を加えずに CakePHPを更に美味しく

×