为什么要使用Phalcon的资产管理器来应用过滤器?

时间:2015-02-26 15:04:17

标签: php sass phalcon

我正在Phalcon中创建一个包含主题管理器的应用程序。主题仅仅是.scss.volt文件的集合。当然,这些.scss是在使用之前构建的。

我一直在测试Phalcon的资产经理。除了创建自定义过滤器等的一些困难之外,我开始想知道:为什么有人会一直构建他们的文件?这会使每个请求慢得多。 Phalcon是否会缓存这些资产?

此外,在开发主题或执行大量前端工作时,查看源sass文件以进行更改非常有用。这在Phalcon有可能吗?

1 个答案:

答案 0 :(得分:1)

根据manual使用资产集合->setTargetPath(),可以将所有选定的文件保存到一个位置。如果你有一些脚本总是包含在你的页面中,你可以将它们放到一个文件中,同时由于过滤器过滤器而缩小。剪辑的代码有点像:

$controller->assets->collection('jsGlobal')
    ->addJs('libs/jquery.js', true)
    ->addJs('libs/jquery-ui.js', true)
    ->setTargetPath('js/global.js')
    ->setTargetUri('js/global.js')
    ->join(true)
    ->addFilter(new \Phalcon\Assets\Filters\Jsmin());

您可能想要检查它是否已在js/global.js位置下构建的脚本,以防止在生产过程中反复构建它。这样,在制作部署脚本时,您只需删除生产服务器上的某些文件即可。

我正在处理的项目使用less。我们安装了\lessc库来管理只保留存储库.less文件。

再次,在开发模式中,我们甚至不检查文件是否已更改 - 我们假设是,并且始终重新编译它。出于生产目的,编写PHP是为了检查某些脚本是否存在,并且仅在它们不存在时才编译.less