我正在努力使现有的PHP驱动网站“现代化”.这个网站开始是一个静态网站,有几个PHP方法.它现在有一个移动网络应用程序,多个模型和大量的动态内容.然而,超时时间本应用程序的结构与它是一个很静态的站点没有太大的变化,所以现在包含文件遍地,没有应用程序/表示逻辑的分离等等.从事于.所以我正在重新组织所有的事情,并重新开发了很多预先存在的功能,为我们准备升级到不断增长的生态系统.首先,我正在重新编码,以适应MVC架构.虽然我使用PHP,但我的大部分背景来自Ruby和Node,所以我的问题是:
实际问题
我更喜欢Rails的资产管道,并且看到我正在开发的当前网站(见上图)有大约10种不同的样式表,甚至更多的javascript文件,我真的希望实现某种资产管理器当我将网站转换到一个MVC设置.
我发现了Assetic,这似乎很有趣,但我不太明白将其实现到模板系统中的最佳方式(我没有使用任何预先构建的模板,如Twig,我可以找到任何参考资料)或者动态地为资产提供服务.
我还发现了一些名为Pipe:https://github.com/CHH/pipe的东西,它看起来像一个非常接近的Sprockets端口,但是我无法正确运行它.
是否有任何应用程序可以实现Assetic(或Pipe)或另一个不依赖现有模板引擎(如Twig)的Asset Packager,我可以看看?
真的,我正在寻找可以将多个JS和CSS文件进行最小化/组合的东西,然后缓存它们.
使用模板系统,Twig是最好的,因为像hakre所说,它是强大的实现.然而,将它集成到任何其他模板系统中并不是这样(我很快写了一个Smarty插件,供个人使用,它的工作原理很好).
Finaly Assetic做任何你需要的:
>组合JS / CSS:完成与AssetCollection类(has show here)
Minify:这里你将使用filters Assetic提供的:CssMin,JsMin,Google Closure Compiler,你已经有了这个选择.甚至有图像适配器用于图像优化(主要是质量无损大小缩小)
> Cache:Assetic有一个cache system,所以你不需要通过yourslef创建一个.
Assetic的最后一个优点是,它是默认情况下在Symfony2中使用的,这是imo,最近最好的PHP框架之一,所以证明Assetic是一个不错的选择.
迄今为止,使用Assetic out of Symfony的问题是缺少文档(在我的情况下使用CssRewriteFilter),但是很好地了解源代码通常有助于获取应用程序的工作原理.