超簡単!CakePHP 2.xで出力されるHTMLを簡易minifyする方法

2015/07/29CakePHP, PHP

ハイどうも、桔梗です。

最近お仕事でCakePHP使うことがあって、テンプレートファイル(*.ctpとかのアレ)をしこしこ弄ってたんですが、

ふと、

「HTMLの閉じタグの後で改行すると、ブラウザで見たときに余計な空白として認識されちゃって超うざい!!」

って思っちゃったんですね。
HTML触る人には結構あるあるネタですよねこれ。
んで、折角CakePHP使ってるんで、CakePHPらしく「サクッと(これ大事)」対処できるようにしたくなった!!

「CakePHP」「HTML」「minify」とかでググると、本家CakePHPブログが紹介してるこれとか日本語で紹介されてるこれとかこれとか引っかかるワケですが、

超めんどくせえ!!(すいません短気で)

なので、サクッとやってしまったというわけです。

やりかた:
アナタのapp/Controller/AppController.phpに、下記のメソッドを追加して継承するだけ!!!
どうです、簡単でしょ?!

/**
 * HTML出力を簡易minifyする
 * タグとタグの間に空白しか無い場合に取り除く
 *
 * @todo コンテンツに含まれるJavaScript等のための考慮が必要
 */
public function render($view = null, $layout = null) {
    $this->response = parent::render($view, $layout);
    $body = $this->response->body();

    // TODO: このパターンマッチ以外を追加する場合は
    // コンテンツに含まれるJavaScript等のための考慮が必要
    $body = preg_replace('#>\s+<#s', '><', $body);

    $this->response->body($body);
    return $this->response;
}

CakePHP, PHP

Posted by bellflower