Как автоматически регистрировать js, css файл в главном теге изнутри пакета? поэтому нам не нужно добавлять его вручную в макет.
В рамках zend для этого используются HeadScript
и InlineScript Helper
, prepend
или append
. Как насчет symfony2? это тоже возможно?
В zend framework мы можем зарегистрировать его следующим образом:
public function onBootstrap($e) {
$sm = $e->getApplication()->getServiceManager();
$headLink = $sm->get('viewhelpermanager')->get('headLink');
$headLink->appendStylesheet('/assets/MyModule/css/mystylesheet.css');
}
Я имею в виду, я хочу зарегистрировать его, например, из AcmeBlogBundle.php
поэтому нам не нужно добавлять вручную в <head></head>
в макете.
Вы не можете сделать это, как в Zend. Но вы можете определить соответствующий блок с js в базовом макете только один раз. И затем из любого шаблона вы можете поместить все, что хотите в этот блок. Symfony реализует немного другую логику, чем Zend.
В вашем макете:
<head>
{% block custom_head_js %}
<some basic js files for all the pages>
{% endblock%}
</head>
В вашем храме:
{% block custom_head_js
'@YourBundleNamespace/YourBundleName/Resources/public/js/your_js_filename.js'
%}
<script src="{{ asset_url }}"></script>
{% endblock %}
Поэтому, поскольку я сказал, что не нужно менять базовую компоновку каждый раз, когда вы хотите добавить js в "head" js файлы, вы должны сделать это только один раз.
Я не уверен, что это то, что вы ищете, но проверьте это, это покажет вам, как включить каждый js файл в каталог, не перечисляя их вручную.
AcmeBlogBundle.php
в<head></head>
без редактирования файла макета.