为什么要使用 Phalcon 的 Assets Manager 应用过滤器?
Why use Phalcon's Assets Manager to apply Filters?
我正在 Phalcon 中创建一个包含主题管理器的应用程序。主题只不过是 .scss
和 .volt
文件的集合。当然,这些 .scss
是在使用之前构建的。
我一直在测试 Phalcon 的资产管理器。除了创建自定义过滤器等的一些困难之外,我开始怀疑:为什么有人会一直构建他们的文件?这会使每个请求慢得多。 Phalcon 是否缓存这些资产?
此外,在开发主题或进行大量前端工作时,查看源 sass 文件的更改很有用。这在 Phalcon 中可行吗?
根据 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
。
我正在 Phalcon 中创建一个包含主题管理器的应用程序。主题只不过是 .scss
和 .volt
文件的集合。当然,这些 .scss
是在使用之前构建的。
我一直在测试 Phalcon 的资产管理器。除了创建自定义过滤器等的一些困难之外,我开始怀疑:为什么有人会一直构建他们的文件?这会使每个请求慢得多。 Phalcon 是否缓存这些资产?
此外,在开发主题或进行大量前端工作时,查看源 sass 文件的更改很有用。这在 Phalcon 中可行吗?
根据 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
。