Brindille - Inclure le Modèle à partir d'un autre Répertoire
Est-il possible d'inclure un modèle avec {% include %}
qui est en dehors du chemin d'accès au modèle défini avec:
$template = $twig->loadTemplate('example.tpl');
Je pose la question parce que cette ligne ne fonctionne pas:
{% include '.../example/navbar_left.tpl' %}
OriginalL'auteur user1766080 | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas possible à l'aide de
Twig_Loader_Filesystem
, parce qu'il rejette explicitement les noms de modèle qui ont..
à l'intérieur. Cela peut être vérifié dans la définition de la fonctionvalidateName($name)
à l'intérieur du fichierTwig/lib/Twig/Loader/Filesystem.php
.La seule solution propre, que je pense, si vous avez besoin d'accéder à un modèle en dehors du chemin, c'est créez votre propre chargeur.
Une solution de contournement qui ne fonctionne pas, est la définition d'un lien symbolique dans le dossier inscrits
Twig_Loader_Filesystem
, pointant vers le répertoire que vous souhaitez accéder. Être attention avec cette méthode, le point le lien vers un endroit sûr.include
?OriginalL'auteur Nicolás Ozimica
Vous pouvez ajouter votre chemin vers le Rameau loader (chargeur de système de fichiers)
voir la dernière réponse de Fabien (addPath méthode est ce que vous avez besoin)
https://github.com/symfony/symfony/issues/1912
OriginalL'auteur olegkhuss