11

バックグラウンド

私は、既存のPHP駆動型Webサイトの「近代化」に取り組んでいます。このWebサイトは、いくつかのphpメソッドを備えた静的Webサイトとして始まりました。現在、モバイルWebアプリ、複数のモデル、および多くの動的コンテンツがあります。ただし、時間の経過とともにアプリ自体の構造はほとんど静的なサイトであったときからあまり変わっていないため、今では至る所にインクルードファイルがあり、アプリケーション/プレゼンテーションロジックの分離などはありません。作業します。そのため、成長するエコシステムへの今後のアップグレードに備えて、すべてを再編成し、既存の機能の多くを再開発しています。まず、MVCアーキテクチャに収まるようにeverythignを再コーディングしています。私はPHPを使用していますが、私のバックグラウンドのほとんどはRubyとNodeに由来しているため、私の質問は次のとおりです。

実際の質問

私はRailsのAssetPipelineがかなり好きで、現在作業しているサイト(上記の背景を参照)には約10の異なるスタイルシートとさらに多くのjavascriptファイルがあるので、ある種のアセットマネージャーを実装したいと思います。サイトをMVCセットアップに移行します。

Asseticを見つけましたが、これはかなり興味深いようですが、テンプレートシステムに実装するための最良の方法を完全には理解していません(Twigなどの構築済みのテンプレートを使用していません。または、動的にアセットを提供します。

また、Pipeと呼ばれるものを見つけました:https ://github.com/CHH/pipe 、これはSprocketsの非常に近いポートのように見えますが、正しく実行できませんでした。

Assetic(またはPipe)を実装するアプリケーション、またはTwigなどの既存のテンプレートエンジンに依存しない別のAssetパッケージャーで、私が見ることができるものはありますか?

本当に、私は複数のJSファイルとCSSファイルを縮小/結合し、それらをキャッシュするものを探しています。

4

1 に答える 1

9

Liek hakre 氏は次のように述べています。テンプレート システム (Twig、Smarty...) は必要ありません。

テンプレート システムでは、hakre が言ったように、強力に実装されているため、Twig が最適です。ただし、それを他のテンプレート システムに統合することはそれほど難しくありません (個人用の Smarty プラグインをすぐに作成しましたが、うまく機能します)。

最後に、Assetic は必要なことをすべて行います。

  • JS/CSS の結合: AssetCollection クラスで実行 (ここに表示されます)
  • Minify : ここでは、Assetic が提供するフィルターを使用します: CssMin、JsMin、JsMin+、Google Closure Compiler。画像最適化のための画像フィトラーもあります(主に品質のロスレスサイズ縮小)
  • キャッシュ : Assetic にはキャッシュ システムがあるため、自分で作成する必要はありません。

Assetic の最後の利点は、Symfony2 でデフォルトで使用されているものであり、最近では最高の PHP フレームワークの 1 つであるため、Assetic が適切な選択であることを証明しています。

これまで Symfony から Assetic を使用してきた唯一の問題は、ドキュメントの欠如 (私の場合は CssRewriteFilter の使用法) でしたが、ソース コードをよく理解することは、それがどのように機能するかを理解するのに役立ちます。

于 2012-11-29T10:53:14.143 に答える