2012.10.24 (Wed)
橋口 誠 a.k.a. gusagi
 menue株式会社   所属
 • ケータイ / スマートフォンサイトとか作ってます
 • 最近は社内勉強会なども色々やってます

 『パーフェクトPHP』書きました

 以前はPHP勉強会@東京の幹事やってました
はじめに


Asset Filter


Dispatcher Filters


まとめ
「資産」「財産」の意
           ↓
css, js, 画像などを指す
js, 画像などもプログラム経由で出力
 css,
  している
 更新が滅多に行われないのにキャッシュが
  使われない
 不要な記述でファイルサイズが大きくなっ
  ている
 ファイル取得に大量のリクエストを送って
  いる
css, jsをgzip圧縮
304 Not Modifiedの制御
css, js内の文字列置換
複数ファイルの一括出力
app/Config/core.php で
    フィルタを設定
Configure::write(
   'Asset.filter.css‘,‘asset.php‘);
 Configure::write(
   'Asset.filter.js‘,‘asset.php‘);
HtmlHelper::css(),
 HtmlHelper::js()
の出力URLが変化
/css/example.css
        ↓
/ccss/example.css
/js/example.js
       ↓
/cjs/example.js
https://github.com/gusagi/WizApp/blob/develop/webroot/asset.php
変数名         値
$url        CakeRequestクラスのオブジェクト->url
$response   CakeResponseクラスのオブジェクト
$filters    Asset.filter で設定した内容(配列型)
$isCss      リクエストファイルがcssかどうか(boolean)
$isJs       リクエストファイルがjsかどうか(boolean)
最後にexitを忘れずに!
 Dispatcherクラスからフィルタ部分を分離
 app/Config/bootstrap.phpで設定
 CakePHP本体では2つのフィルタを用意
  • AssetDispather
     lib/Cake/Routing/Filter/AssetDispatcher.php
  • CacheDispatcher
     lib/Cake/Routing/Filter/CacheDispatcher.php


http://book.cakephp.org/2.0/en/development/dispatch-filters.html
http://api.cakephp.org/class/dispatcher-filter
CakePHPが出力するレスポ
 ンスヘッダを改ざん
デフォルト以外のContent-
 Typeを追加
app/Config/bootstrap.php   で
     フィルタを設定
Configure::write(
 'Dispatcher.filters', array(
    ‘AssetDispatcherEx',
    ‘CacheDispatcher’
));
https://github.com/gusagi/WizApp/blob/develop/Routing/Filter/AssetDispatcherEx.php
css, jsの出力に手を加えたい
 ならAsset Filter
css, js以外の出力に手を加え
 たいならDispatcher Filters
フィルタを使って
コアコードに手を加えずに
 CakePHPを更に美味しく
20121024 phpstudy
20121024 phpstudy

20121024 phpstudy