【FuelPHP】HTMLをminifyして出力する
PHPでHTMLのminifyが出来るhtml-minifierというものがありました。
これをFuelPHPから使ったのでメモ。
まずはconposerでhtml-minifierをダウンロードします。
下記を記述したconposer.jsonを作成
{ "require": { "zaininnari/html-minifier": "*" } }
インストール
curl -sS https://getcomposer.org/installer | php php composer.phar install
生成されたvendorフォルダを、FuelPHPのmodelフォルダの直下に置いて、次のモデルを定義しました。
<?php require_once APPPATH.'classes/model/vendor/autoload.php'; class Model_Html extends Model { public static function minify($view) { return zz\Html\HTMLMinify::minify($view, array( 'doctype' => 'html5', 'optimizationLevel' => 1 )); } }
コントローラから、下記のように使用できます。
<?php ... $view = View::forge('home/index'); $view->header = View::forge('header'); $view->footer = View::forge('footer'); // minifyして返す return Response::forge(Model_Html::minify($view));
minify前
minify後 (optimizationLevel: 1)
z\Html\HTMLMinify::minifyの第二引数にはオプションを渡せます。
下記のオプションが使えます(2013/10/04現在)。最初の値がデフォルト値です。
doctype: XHTML1.0 / HTML4.01 / html5 optimizationLevel: 0 / 1 emptyElementAddSlash: false / true emptyElementAddWhitespaceBeforeSlash: false / true removeComment: true / false removeDuplicateAttribute: true / false
~ 追記(2013/10/05) ~
圧縮した結果をデータベースにキャッシュさせました。
【FuelPHP】 minifyしたHTMLをデータベースにキャッシュする