Comment Appeler la Fonction Statique Dans Symfony2 Template Twig
Comment appeler ma fonction statique dans le template twig sans passer par le contrôleur?
Par exemple:
...
{{ MyStaticClass::getData() }}
...
Ma Classe Statique:
class MyStaticClass {
const v1 = 'Value1';
const v2 = 'Value2';
...
public static function getData() {
...
return $data;
}
}
OriginalL'auteur overshadow | 2015-10-03
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas appeler directement le PHP dans un template twig. Vous aurez besoin de créer un filtre ou une fonction pour faire ce que vous cherchez.
Puis dans votre template twig viens de faire:
Bien sûr l'exemple ci-dessus suppose
MyStaticClass
est dans le champ d'application de partout où vous êtes twig.Symfony Exemple
Vous devez créer une brindille extentions. L'exemple ci-dessous:
Ceci est un exemple d'une extension que j'ai créé pour convertir la devise d'une monnaie à une autre dans twig.
Pour la mettre en œuvre, vous devez créer un objet de service dans vos services.yml
Puis comme ci-dessus, dans twig, je peux appeler la classe et la fonction à l'aide de
{{ convertCurrency(55505, 'CAD', 'USD) }}
Quel que soit le fichier est le rendu de votre template twig. Ajouter ce code juste avant le rendu.
Au sein de la portée des moyens, que votre classe est accessible/appelable à partir d'où vous déclarez le code ci-dessus.
Vous dire que mon contrôleur juste avant que j'appelle de rendu?
J'ai ajouté un exemple d'une extension, j'ai dû écrire pour la brindille dans l'un de mes projets pour convertir les devises.
OriginalL'auteur Sean
Au lieu d'écrire une extension Twig plus facile /moins de ballonnement solution peut parfois être simplement passer une nouvelle instance de la classe avec les méthodes statiques de twig.
par exemple
et dans twig:
OriginalL'auteur qwertz