转储到给定文件名
( assetic的输出选项 )
您可以将资产集合配置为转储到给定的文件名。这可以在树枝内部实现output选项。不再自动生成文件名,例如7cb568e.js.
example:
{% stylesheets
'bundles/mlabsacraserver/stylesheets/*'
filter='cssrewrite'
output='css/stylesheets.css'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
...或JavaScript ...
{% javascripts
'bundles/mlabsacraserver/js/jquery.min.js'
'bundles/mlabsacraserver/js/*'
output='js/javascripts.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
现在 assetic 会将您的资产转储到js/javascripts.js and css/样式表.css使用给定的过滤器。
assetic 将转储这些资产的基本路径可以在 config.yml 中配置:assetic.write_to并默认到 web/ 文件夹。
预配置的资产集合
您可以做得更好并使代码更加结构化。
您可以在 config.yml (或另一个导入的配置文件)中定义资产集合。
配置可以在下面找到资产.资产
example:
# app/config.yml
assetic:
# ...
assets:
js_main:
inputs:
- "bundles/mlabsacraserver/js/jquery.min.js"
- "bundles/mlabsacraserver/js/*"
output: js/javascripts.js
css_main:
inputs:
- "bundles/mlabsacraserver/stylesheets/*"
filters:
- cssrewrite # ...add more if you like
output: css/stylesheets.css
现在您可以使用 assetic 在您的 twig 模板中使用这些集合asset()
函数和@
- 具有相应集合名称的语法。
example:
<link href="{{ asset('@css_main') }}" type="text/css" rel="stylesheet" />
... 和 ...
<script src="{{ asset('@js_main') }}" type="text/javascript"></script>
通过这种方式,您可以配置 assetic 在何处查找您的 asset,使用单个配置参数更改名称,并将此逻辑保留在模板之外,从而使它们更具可读性且更易于维护。
结果输出示例:
<link href="/web/css/stylesheets.css" type="text/css" rel="stylesheet" />
<script src="/web/js/javascripts.js" type="text/javascript"></script>
现在,您的应用程序中有一个配置点,您可以在其中使用集合添加和删除资产,然后只需在模板中使用它们的引用名称。
部署的进一步改进
您可以让您的用户输入他们的 MySQL 主机、用户和密码,并让 symfony 为您写入参数文件。
这就是 symfony 标准版使用的功能SensioDistributionBundle https://github.com/sensio/SensioDistributionBundle当您第一次访问您的应用程序时。
执行实际写入parameters.yml的类是Sensio\分发包\配置器\配置器 https://github.com/sensio/SensioDistributionBundle/blob/master/Configurator/Configurator.php.
use Sensio\DistributionBundle\Configurator\Configurator;
现在使用安装控制器中的配置器。
$configurator = new Configurator($this->get('kernel')->getRootDir());
$configurator->mergeParameters(array(
'my_parameter' = 'my_value',
'my_parameter2' = 'my_value2',
));
$configurator->write();
}
最好的办法是查看 Configurator 类本身以了解它是如何工作的。
我现在可以领取赏金吗? ;-)