Javaスクリプト圧縮
この記事は最新更新日から、4年以上経過しています。

Google Closure Compilerを利用したPHPクラスを作ってみる

前回の記事で利用した、Google Closure Compilerを使ってJavaスクリプトを圧縮するツールを作成してみます。

HTMLから呼び出すJavaスクリプトをPHPファイルにする

Javaスクリプトは、基本的には「*.js」ファイルですがPHPを指定することもできます。

もちろん指定したPHPが、Javaスクリプトを出力しなければなりません。

 

HTMLにてJavaスクリプト定義にPHPを指定する例

 

複数のJavaスクリプトを1つにまとめて、圧縮して出力するPHPクラス

これを利用して、複数のJavaスクリプトを1つにまとめて、圧縮して出力するPHPクラスを作成してみました。

ただまとめて圧縮するだけだと、表示するたびに処理が必要で遅くなるためキャッシュファイルを作成するようにしました。

コンストラクタ 引数として文字列を渡すことで、任意のキャッシュファイル名を作成します。

省略時には、処理日をmd5ハッシュ値にし作成します。

setCompilationLevel 圧縮レベルを指定します。(デフォルト SIMPLE_OPTIMIZATIONS)

WHITESPACE_ONLY 空白&コメント&改行削除
SIMPLE_OPTIMIZATIONS 上記plus 変数名省略可
ADVANCED_OPTIMIZATIONS 解析して高圧縮

setScript 対象のスクリプトパス、またはコードを設定します。

※libは圧縮されません。js+codeを圧縮します。

※どの順番で指定した場合でも、libは先頭に出力されます。

lib ライブラリ

js  圧縮対象ファイル

code JavaScriptコード

setCacheTime キャッシュの有効時間をミリ秒で設定(デフォルト2週間)
setCacheDir キャッシュの出力フォルダを指定します(デフォルトPHPパス)
getMinJs setScriptで指定したコードを圧縮し戻します。

 

 

上記クラスの呼び出しサンプル

w2uiライブラリを使ってJavaスクリプトを作成していると、かなり大きなファイルになってしまいます。

設定部や処理部など、ファイルを分割しておいて、HTMLから呼び出されたときにまとめて圧縮して出力しています。

 

本来ならコンパイルしてくれるツールなど沢山あるのでしょうが、PHPクラスにしておけばある程度環境に左右されないかと思います。

パッと考えて作ったクラスなので、あまり自信をもって公開できるものではありませんが・・・(;´・ω・)

何かのお役に立てれば幸いです。

By にど寝

もともと名古屋でシステムエンジニアをしてましたが、現在は地元に帰省してネットショップの社内システムエンジニアをしてます。  

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)