资产管道/框架PHP(Asset Pipeline/Framework for PHP)

2019-07-30 04:20发布

背景

我工作的“现代化”预先存在的PHP驱动的网站。 本网站开始了作为一个静态的网站有几个PHP方法。 它现在有一个移动网络应用程序,多种车型,并以大量的动态内容。 然而,应用程序本身的加班结构并没有太大的时候,这是一个主要的静态网站改变了,所以现在有包括所有的地方文件,没有应用/演示逻辑,等等等等的分离,是一个烂摊子从事于。 所以我的一切重组和重新开发了大量的预先存在的功能我们为即将到来的升级准备日益增长的生态系统。 首先,我重新编码everythign以适应MVC架构内。 虽然我用PHP的工作,我大部分的背景来自于Ruby和节点,因此我的问题:

实际问题

我比较喜欢Rails的资产管道,看到因为我的工作对当前网站(见上文背景)大约有10种不同的样式,甚至更多的JavaScript文件,我真的想实现某种形式的资产管理公司的我过渡网站切换到一个MVC设置。

我发现Assetic ,这似乎很有趣,但我不太明白的最好办法落实到一个模板系统(我没有使用任何预建的模板,如枝杈,其中任何参考材料我可以找到使用)或者它动态服务资产。

我还发现一些所谓的管: https://github.com/CHH/pipe ,它看起来像链轮的非常接近港口,但我不能让它正常运行。

是否有实现Assetic(或管道)的任何应用程序,或不依赖于现有的模板引擎另一个资产打包,如枝杈,我可以看看?

真的,我寻找的东西,会再压缩/组合多个JS和CSS文件,然后缓存。

Answer 1:

Liek hakre说,Assetic开箱的。 你不需要任何模板系统(嫩枝,Smarty的...),它的工作原理。

随着模板系统,嫩枝是最好的,因为像hakre说,我们强烈落实。 然而,这并不是说diffucult将它集成到任何其他模板系统(我很快就写了Smarty的插件的personnal使用,效果很好)。

Finaly Assetic做任何事情,你需要:

  • 结合JS / CSS:与AssetCollection类完成( 已在这里展示 )
  • 缩小:在这里您将使用过滤器 Assetic规定:CssMin,JsMin,JsMin +,谷歌关闭编译器,你已经得到了最佳的选择。 甚至有用于图像优化(主要是质量无损尺寸缩小)图像fitler
  • 缓存:Assetic有一个缓存系统 ,所以你不必创建一个由yourslef。

最后一个优点是,去Assetic的是,它在默认情况下在Symfony2中,所使用的一个是,海事组织,最好的PHP框架的一个较晚,它证明了Assetic是一个不错的选择。

唯一的问题我至今使用Assetic出来的Symfony的是缺少文件(该CssRewriteFilter在我的情况下使用),但源代码通常有助于获得它如何工作的很好的理解。



文章来源: Asset Pipeline/Framework for PHP