2012-03-09 19 views
0

私は公開プロジェクトに取り組んでいます。私たちが後にしているのは、CSSファイルの合併と最小化とjsファイルの合併と最小化です。 必要条件は次のとおりです。CSSを探してjsファイルの合併やミニマイザーを探しています

  • ベータ版はありません。安定したコードのみ。
  • は、PHPで記述する必要があります。
  • PHP 5.4で動作する必要があります。
  • 5.3
  • CSS最小化プログラムはJS最小化とは全く異なっていてもよいが、それができるよう
  • 最小限結果は幾分働かなければならない(それは2 1である必要はない)、PHPと互換性がある必要がありますファイルにダンプされます。ブラウザはダンプされたファイルにのみアクセスします。これは多くの作業で作業できるようになっている必要があります。

システムが唯一の最小化である場合は、私は、サーバーでのマージ自分(文字列連結)を行うと、以降の最小化を使用することができます。

新しい圧縮がある場合は、jsやCSSを縮小するときに呼び出すシステム(クラス、関数など)を使用します。その出力はファイルに置かれているはずなので、もし出力がプログラムに返された単なる文字列であれば、出力は素晴らしいファイル(!)に直接行くことができます。良い(!)私のプログラムは圧縮されたファイルは置換されているとみなされ、ファイルへのアクセスを扱うのはファイルです。

これは、PHPのイニシアチブによる外部コミュニケーションがすべて無効になっている場合、ほとんどの機能が無効になっているようなところで動作する必要があるプロジェクト向けです。つまり、URLは含まれず、カールもなく、URLもfile_get_contents()もexec()もありません。

注:このウェブサイトにはこの件に関する多くの質問があります。問題は一般的にはジェネラリストになり、私が必要とするものに答えることができないということです(例:現在バグがあることが知られているYUIやコンプレッサーの提案にもっと興味があります)。

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

答えて

2

CSSの場合、私は個人的にCSSMinを使用して素晴らしい結果を得ています。これはPHPの単純な解決策であり、@variable宣言でシミュレートすることもできます。

JSファイルの場合、私はをcurlと呼びますが、これはあなたのニーズを満たしていません。

+0

Hum ...カールが利用可能なときに私はGCCで作業することができます。 CSSMinは大丈夫です... – brunoais

0

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

ウェブベースのものを使用するのがより快適になると思われます。そのためには、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はあなたを傷つけることはありません。

+0

質問に追加する必要があるので、exec()は通常無効になっています。オプションではありません。多くのサーバーにはカールがありますが、無効にしてもかなりの量があります(オプションではありません)。 – brunoais

+0

このプロセスを開発環境で行うことをお勧めします。 PHP関数への完全なアクセスのほかに、コンパイル、タイムスタンプ/バージョン管理されたファイルの生成、そしてそれをすべてのサーバに展開するのは良い流れです。後でスケーリングしたり、CDNを使うつもりならば、サーバー環境でこの自動コンパイルの考え方を続けると、さらに複雑になることがあります。 – leods92

+0

私が取り組んでいるプログラムは、フリーサーバで使えるはずです。フリーサーバはexecを無効にします。それは普通のものです。このプロジェクトにもルールがあります。外部のものに100%依存しないでください。期間 – brunoais