0

私は公開プロジェクトに取り組んでおり、私たちが求めているものの1つは、CSSファイルのマージと最小化、およびjsファイルのマージと最小化です。必要条件は次のとおりです。

  • ベータコードはありません。安定したコードのみ。
  • phpで書く必要があります。
  • PHP5.4で動作する必要があります。
  • php5.3と互換性がある必要があります
  • CSS最小化プログラムは、js最小化プログラムとは完全に異なる場合があります(2 in 1である必要はありません)。
  • 最小化された結果は、ファイルにダンプできるように、ある程度機能する必要があります。ブラウザは、ダンプされたファイルにのみアクセスします。これは大量の作業に対応できる必要があるため、縮小して優れたツールを使用できますが、オプションではありません。

システムが最小化のみである場合は、サーバーでマージ(文字列連結)を実行し、後で最小化を使用できます。

圧縮する新しいものがある場合は、jsまたはCSSを縮小するときに呼び出すシステム(クラス、関数など)を使用します。その出力はファイルに配置されることになっているので、出力がファイルに直接移動できる場合はgreat(!)、プログラムに返される文字列だけの場合はgood(!)私のプログラムは圧縮されたときを知っているものですファイルは置換され、ファイルへのアクセスを処理するものになっています。

これは、phpのイニシアチブによるすべての外部通信が無効にされ、ほとんどの機能がある程度無効になっているプロジェクトで機能する必要があります。つまり、URLインクルード、カール、URL file_get_contents()、exec()などはありません...

注:このWebサイトには、このテーマについて多くの質問があります。問題は、それらのほとんどがジェネラリストであり、私が必要とするものに答えないことです(例:現在バグがあることが知られているYUIまたはコンプレッサーを提案することにもっと興味があります)。

私はすでにインターネットでこれを見つけようとしましたが、古い放棄されたプロジェクトしか見つけることができないか、コマンドラインインターフェイスの使用を必要とするコンプレッサーを入手しました。

4

2 に答える 2

2

CSS については、私は個人的にCSSMinを使用して素晴らしい結果を出しています。これは単純な PHP ソリューションであり、宣言を使用して CSS 変数をシミュレートすることもできます。@variable

JS ファイルの場合、Google Closure Compilerを呼び出しますが、curlこれはニーズを満たしていません。

于 2012-03-10T09:40:22.683 に答える
0

CLI から離れたい場合は、おそらくオンライン ツール (cURL を使用してアクセス) または Java ベースのツール (exec() メソッドを使用) を使用するのが最善の策です。

Web ベースのものを使用する方が快適なようです。そのためには、Javascript ファイルにはUglifyJSを、CSSにはPrefixrをお勧めします。

Prefixr はデフォルトでは入力を圧縮しないことに注意してください。その焦点は、ベンダー プレフィックスを最新の CSS プロパティに追加することにあります (これは最近では不可欠です)。しかし、POST パラメータ 'compress_option' を送信すると、出力が圧縮されます。とにかく、[Prefixr の API 使用ページ][5] は PHP cURL の例を提供していないので、以下を参照してください。

$concatenated_content = '.any_css {color: #000;}';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://prefixr.com/api/index.php");
curl_setopt($curl, CURLOPT_POSTFIELDS, array('css' => $concatenated_content, 'compress_option' => 'on'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$compressed_content = curl_exec($curl);
curl_close($curl);

ローカル ツールを使用したい場合は、YUI コンプレッサー (http://developer.yahoo.com/yui/compressor/) と Google Closure (https://developers.google.com/closure/ のみを使用) をお勧めします。 JS の場合、Google Closure Stylesheets は私の意見ではまだ未熟です)。この場合、上記のように PHP exec() 関数を使用でき、CLI は問題ありません。

于 2012-03-09T12:40:38.463 に答える