空白を削除し、コメントを取り除き、ファイルを結合し ( @import
ステートメントと CSS ファイル内の小さなアセットを含む)、次のようないくつかの一般的なプログラミング パターンを最適化/短縮します。
JavaScript
object['property']
-> object.property
true
、 false
-> !0
、 !1
while(true)
-> for(;;)
CSS
@import url("http://path")
-> @import "http://path"
#ff0000
、 #ff00ff
-> red
、 #f0f
-0px
, 50.00px
-> 0
, 50px
bold
-> 700
p {}
-> 削除されました
そして、巨大なテストスイートが付属しています。
use MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// 別のファイルを追加することもでき、それらは // 1 に結合されます出力ファイル$sourcePath2 = '/path/to/second/source/css/file.css';$minifier->add($sourcePath2);// またはプレーンな CSS$css = 'body { color: #000000; を追加するだけです。 }';$minifier->add($css);// 縮小されたファイルをディスクに保存$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);//または、単に contentecho $minifier->minify(); を出力します。
// CSS の例を見てください。まったく同じですが、JS クラスと JS ファイルが異なります:)
CSS と JS ミニファイアーの両方で使用可能なメソッドは次のとおりです。
オブジェクト コンストラクターは、縮小する必要があるファイルの 0、1、または複数のパス、または完全な CSS/JS コンテンツを受け入れます。渡されたすべての CSS/JS は 1 つの縮小ファイルに結合されます。
MatthiasMullieMinify;$minifier = new MinifyJS($path1, $path2); を使用します。
これはコンストラクターとほぼ同等です。
$minifier->add($path3);$minifier->add($js);
これにより、ファイルのコンテンツが縮小され、結果が $path に保存され、結果のコンテンツが返されます。 $path パラメータを省略した場合、結果はどこにも書き込まれません。
注意: 相対パス (インポート、画像などへ) を含む CSS がある場合は、常にターゲット パスを指定する必要があります。その後、それらの相対パスが新しいパスに従って調整されます。
$minifier->minify('/target/path.js');
minify minify()
と同様に、縮小し、必要に応じてファイルに保存しますが、縮小されたコンテンツもgzencode()
で実行されます。
$minifier->gzip('/target/path.js');
CSS ミニファイアーは、参照ファイル (画像、フォントなど) を縮小された CSS に自動的に埋め込むため、複数の接続を介してファイルをフェッチする必要はありません。
ただし、非常に大きなファイルの場合は、それらを個別にロードすることをお勧めします (ファイルが含まれていると CSS のロード時間が長くなる可能性があるため)。
このメソッドを使用すると、縮小された CSS にインポートするファイルの最大サイズを設定できます (KB 単位)。デフォルトのサイズは 5 です。
$minifier->setMaxImportSize(10);
CSS ミニファイアーは、参照ファイル (画像、フォントなど) を縮小された CSS に自動的に埋め込むため、複数の接続を介してファイルをフェッチする必要はありません。
このメソッドを使用すると、ファイルのタイプとその data:mime タイプを指定できます。
デフォルトの埋め込みファイルの種類は、gif、png、jpg、jpeg、svg、apng、avif、webp、woff、および woff2 です。
$extensions = array('gif' => 'data:image/gif','png' => 'data:image/png', );$minifier->setImportExtensions($extensions);
Composer を使用してプロジェクトの依存関係を管理する場合は、 matthiasmullie/minify
への依存関係をcomposer.json ファイルに追加するだけです。
作曲家には matthiasmullie/minify が必要です
Composer を使用することをお勧めしますが、実際にはこれらのファイルを任意に含めることができます。
Minify は MIT ライセンスを取得しています。