CakePHPで圧縮しよう!

Page content

CakePHP1.2 には、CSS や Javascript を任意の PHP に通すことができます。 config/core.php の中の「Asset.filter.css」と「Asset.filter.js」の項目に PHP ファイルを指定するところがあるのです。 この機能は、CSS や Javascript を圧縮して出力するために作られた機能らしいんですが、肝心の圧縮部分がデフォルトでは入っていません。

CSS の圧縮はcsspp.php というものが Trac にあることはあるんですが、圧縮が強力なためか、使用すると CSS が崩れることがあります。 Javascript に関しては圧縮は提供されていないみたいです。

そこで Script Compressor を移植してみました。

使い方は、PHP ファイルを配置して、config/core.php 内の「Asset.filter.css」または「Asset.filter.js」に「jscss.php」を指定すれば完了です。 $html->css または $javascript->link で出力される CSS や Javascript を自動的に圧縮します。

そして、おまけでコントローラーの出力を Gzip 圧縮するコンポーネントも入れてみました。適当に使ってください。