Korzystam z następującej funkcji z propel http://www.propelorm.org/documentation/09-inheritance.html.Instancja twig dla obiektów dziedziczenia
Jestem również za pomocą Symfony2 i gałązka
mam struktury klasy, stosując powyższą funkcję, która wygląda mniej więcej tak
class Event {}
class Birthday extends Event {}
class Walking extends Event {}
teraz przekazać obiekt zdarzenia do szablonu gałązka i chcę Wiesz, jaki rodzaj zdarzenia to
Na przykład chcę wyświetlić obraz ciasta, jeśli jest to urodziny i chcę wyświetlić trasy mapy, jeśli jest to wydarzenie spacerowe.
Nie mogę użyć instanceof w Twig, ponieważ ta funkcja nie istnieje. Czy ktoś teraz, dlaczego to nie istnieje? i czy istnieje sposób można replikować ta funkcjonalność bez konieczności zrobić coś
public function getType()
w każdej klasie lub
public function isBirthday()
w klasie zdarzeń.
Znalazłem to na Githubie, ale nie ma dla mnie znaczenia. Skomentowałem ich, aby sprawdzić, czy mogę uzyskać odpowiedź.
https://github.com/fabpot/Twig/issues/553
Myślę, że jestem po prostu gęsta , ale wydaje mi się, że nie mogę znaleźć tej klasy TwigTest w dowolnym miejscu w @ fabpot/Twig. Czy zdefiniowałeś niestandardową klasę, która rozszerza '\ Twig_Test', czy jest to alias do innej klasy? '' Twig_Test' sam w sobie jest abstrakcyjny, a przez to niezmienny. –
Znaleziono. Zgaduję, że nazwa klasy została zmieniona w pewnym momencie w ciągu ostatnich sześciu miesięcy. '\ Twig_SimpleTest' działa zamiast' TwigTest' powyżej. Zobacz: http://twig.sensiolabs.org/doc/advanced.html#tests –
@TwoWholeWorms Nie, po prostu lubię je importować jak 'use \ Twig_Test as TwigTest; // lub nawet "jako test" (i skądś skopiowany). Lepiej pasuje do ogólnego stylu kodowania. – KingCrunch