Le problème vient de l'include d'un template à priori totalement indépendant et qui peut ne rien étendre du tout.
Spontanément comme ça je ne vois pas d'autres solutions que de placer tes ressources dans le(s) template(s) qui fait l'include.
Si c'est le layout de base fait cet include (comme dans ton exemple), alors tu rajoutes bêtement tes ressources dans les blocks stylesheets et javascripts du layout de base et ces ressources seront disponibles sur toutes les pages qui l'étendent.
Si tu ne veux inclure les assets que là ou tu fais les include de ce composant, ce sont dans chacun des templates qui possèdent cet include qu'il faut surcharger les blocks d'assets.
Dans le second cas, tu auras par exemple un fichier index.html.twig qui étendra de layout, qui surchargera les blocks stylesheets et javascripts, et qui fera également l'include.
Je ne crois pas qu'il soit possible de rajouter des assets comme tu le désires directement à l'intérieur du composant inclus.
Par contre, arrête moi si je me trompe, mais je pense que l'erreur vient surtout du fait que tu essayes de faire fonctionner le système de templating de la même manière que tu le faisais avec symfony 1.x.
Tu as repris la même structure en remplaçant
<?php include_component('base','example') ?>
par
{{ render(controller("monbundle:base:example")) }}
or je pense qu'il est plus judicieux à cet endroit de faire un block pour ton composant et de le surcharger dans les templates ou tu en as besoin, quitte à faire ce même render dans la surcharge du block component. Tu peux aussi lui mettre un contenu par défaut, et l'écraser ou rajouter des éléments dans les templates filles : selon tes besoins tu pourras alors déclarer tes assets directement dans le base layout, ou surcharger les blocks d'assets dans les templates qui modifient ton block component.
Partager