Я использую следующую функцию от propel http://www.propelorm.org/documentation/09-inheritance.html.Twig instanceof для объектов наследования
Я также использую Symfony2 и Twig
У меня есть структура класса, используя описанную выше функцию, которая выглядит примерно так
class Event {}
class Birthday extends Event {}
class Walking extends Event {}
теперь я передаю объект события к шаблону веточки, и я хочу знаете, какой тип события
Например, я хочу отобразить изображение пирога, если его день рождения, и я хочу отображать маршруты карты, если это событие для ходьбы.
Я не могу использовать instanceof в Twig, поскольку эта функция не существует. Кто-нибудь теперь, почему этого не существует? и есть способ, которым я могу повторить эту функцию без необходимости делать что-то вроде
public function getType()
в каждом классе, или
public function isBirthday()
в классе событий.
Я нашел это на github, но это бесполезно для меня. Я прокомментировал их, чтобы узнать, смогу ли я получить ответ.
https://github.com/fabpot/Twig/issues/553
Я думаю, что я просто плотный , но я, похоже, не могу найти этот класс TwigTest в любом месте в @ fabpot/Twig. Вы определили пользовательский класс, который расширяет '\ Twig_Test', или это псевдоним другого класса? '\ Twig_Test' сам является абстрактным и, следовательно, непрестанным. –
Нашел. Я предполагаю, что класс был переименован в какой-то момент за последние шесть месяцев. '\ Twig_SimpleTest' работает вместо' TwigTest' выше. Смотрите: http://twig.sensiolabs.org/doc/advanced.html#tests –
@TwoWholeWorms Нет, мне просто нравится импортировать их как 'use \ Twig_Test как TwigTest; // или даже «как тест» (и он был скопирован где-то). Вписывается в общий стиль кодирования – KingCrunch