ホームページ  >  記事  >  バックエンド開発  >  オープンソースの work-PHP で書かれた JS および CSS ファイル圧縮ツール-SuMinify_PHP_1_5

オープンソースの work-PHP で書かれた JS および CSS ファイル圧縮ツール-SuMinify_PHP_1_5

WBOY
WBOYオリジナル
2016-08-08 09:22:291251ブラウズ

前書き:

Web サイト プロジェクトは、読み込みトラフィックを減らすために外部ファイルを参照する必要があります。外部リソース ファイルを初めて読み込んだ後、同じドメイン名を持つ他のページが同じアドレスを参照している場合は、ブラウザーのキャッシュを使用して直接読み取ることができます。ローカルにキャッシュされたリソース ファイル。ページごとに同じ外部リソース ファイルをダウンロードする必要はありません。外部リソース ファイルの一部はサードパーティのプラグインであり、一部は私が作成したビジネス関数スクリプトです。プロジェクトがこれらの外部ファイルを参照する場合、それらの一部を引用する前に、非圧縮のサードパーティ プラグインを圧縮する必要があります。独自の業務関数スクリプトはプラグイン形式であり、関数スクリプトを参照するには複数のスクリプトファイルを同時に参照する必要があるため、これらのスクリプトファイルを圧縮ファイルにマージして参照する必要があります。これにより、参照数を減らすことができます。 HTTP リクエストの負荷を軽減し、これらの外部リソース ファイルの読み込みトラフィックを削減します。
これらの目標を達成するための私の当初の手順は次のとおりでした: ターゲット パスに新しい .min.xxx ファイルを作成し、オンライン JS/CSS 圧縮サービスを提供する Web サイトを開き、ソース コードをオンライン圧縮にコピーしてから、それをコピーします。ファイルを結合する必要がある場合は、複数のファイルのソース コードをコピーして圧縮し、同じ .min.xxx ファイルに貼り付けます。ただし、プロジェクトが進行するにつれて、関数がますます増え、外部ソース ファイルが変更されるたびに、.min.xxx ファイル、特に .min.xxx ファイルを更新するために多大な労力が必要になります。ソースファイルは別のディレクトリに分散されており、これらのディレクトリを見つけるのは非常に面倒です。そこで私は、自動圧縮とマージのための小さなプログラムを作成するというアイデアを思いつきました。このプログラムを実行すれば、これらの退屈な繰り返しタスクを完了するのに役立ちます。

はじめに:
SuMinify_PHP は、Web サイトプロジェクトで js ファイルまたは css ファイルを圧縮または結合するために使用される、PHP プログラムの単一ファイルのグリーンバージョンであり、phpinfo.php と同様に、プロジェクトで簡単に使用できます。
Web サイト プロジェクトの開発プロセスでは、サードパーティのプラグインや自作のプラグインなど、js ファイルがさまざまなディレクトリに配布されることがよくあります。通常、複数の Javascript プラグインは圧縮され、1 つのファイルにマージされます。 http リクエストの数を減らすためのプロジェクトの参照用。
手動で操作する場合、プラグインが変更されるたびにファイルを圧縮してマージするのに多大な労力を費やす必要がありますが、この自動プログラムを使用すると、プロジェクト内の外部リソース ファイルを自動設定に書き込むことができます。その後、SuMinify プログラムを実行する限り、ルールに従って指定されたディレクトリにファイルを圧縮またはマージすることができ、労力を節約し、作業効率を向上させることができます~

特徴:
1. 単一ファイルのグリーンバージョン、外部依存がなく、展開と使用に便利
2. 複数のプロジェクトの素早い切り替えをサポート
3. ルールに従って設定ファイルを記述し、ソースコードを自動的に読み取ることができます。設定ファイルに従ってソースコードのパスを指定して圧縮し、指定された .min 圧縮ファイルに出力します
4、プロジェクトのルール設定ファイルは任意のパスに配置できます
5. 異なるディレクトリにある複数のファイルの内容をマージします。 1 つのファイル
6. ディレクトリ全体のインプレース バッチ圧縮を実行します。たとえば、ディレクトリ パスを入力した後、ディレクトリ内のファイルを自動的にスキャンして圧縮ファイルを生成できます。各ファイル名 + .min の形式でファイルを作成します
7. ディレクトリ全体のリソース ファイルを圧縮した後、指定したパスの .min ファイルにマージします
8. ディレクトリ全体が一括圧縮されると、. min ファイルは繰り返しの圧縮を防ぐために自動的に無視されます

使用法:
1. SuMinify_PHP_1_5 ファイルをプロジェクト内の任意のディレクトリにコピーします (このファイルは単一ファイルのグリーン バージョンで、使いやすいです^_^)。
2. 設定を変更します。
3. このファイルを実行します。生成が成功したら、結果を表示して使用できます。

ヘルプ:

<span>$config</span> = <span>array</span><span>(
    </span><span>//</span><span> soui_v3a项目</span>    'soui_v3a' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\soui_v3a_config.php',
    <span>//</span><span> soui_v3b项目</span>    'soui_v3b' => <span>array</span><span>(
        </span>'js' => <span>array</span><span>(
            </span>'in-place-minify' => <span>array</span>(<span>//</span><span> 就地压缩js</span>                'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\superfish\superfish.js', <span>//</span><span> 就地生成superfish.min.js文件</span><span>array</span>('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\*', 'skips' => <span>array</span>('F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\skip-me1.js', 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\skip-me2.js')), <span>//</span><span> 整个目录就地压缩,跳过其中2个文件的压缩</span>            ),
            'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\min\jquery.easyui.min.js' => <span>array</span><span>(
                </span><span>array</span>('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\easyui\jquery.easyui.min.js', 'minify' => <span>false</span>), <span>//</span><span> 不用压缩,直接合并</span>                'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\easyui\locale\easyui-lang-zh_CN.js', <span>//</span><span> 压缩后合并</span>            ),
            'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\min\pages.min.js' => <span>array</span><span>(
                </span><span>array</span>('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\*'), <span>//</span><span> 将目录中所有文件压缩后合并</span>                'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\js-prototype-extension.js', <span>//</span><span> 压缩后合并</span>                'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Plugin\jquery-audioplayer-1.0\jquery-audioPlayer-1.0.js', <span>//</span><span> 压缩后合并</span><span>            )
        )</span>,
        'css' => <span>array</span><span>(
            </span>'in-place-minify' => <span>array</span>(<span>//</span><span> 就地压缩css</span>                'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\Pages\*', <span>//</span><span> 整个目录就地压缩</span>            ),
            'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\Default\easyui.min.css' => <span>array</span><span>(
                </span>'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\Default\easyui.css', <span>//</span><span> 压缩后合并</span><span>array</span>('path' => 'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\icon.css', 'replaces' => <span>array</span>("'icons/" => "'../Icons/")), <span>//</span><span> 压缩后替换内容,然后合并</span>            ),
            'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\superfish\superfish.min.css' => <span>array</span><span>(
                </span>'F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\superfish\superfish.css', <span>//</span><span> 就地压缩</span>            ),<span>        )
    )</span>,<span>);</span>

レンダリングの実行:

://git.oschina.net/sutroon/SuMinify_PHP_1_5

ソースコード: https://git.oschina.net/sutroon/SuMinify_PHP_1_5.git

上記では、PHP で書かれた JS および CSS ファイル圧縮ツールであるオープンソース作品 SuMinify_PHP_1_5 を、関連コンテンツも含めて紹介しました。PHP チュートリアルに興味のある友人にとって役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。