Похоже, что вы можете сделать это через атрибут:
self._CHEETAH__cheetahIncludes
Это словарь, содержащий все ваши включения.
Используйте его из шаблона после включения, например:
$self._CHEETAH__cheetahIncludes[include_id].the_function(*args)
Для меня include_id
оказался путем к файлу (я выяснил это, сначала распечатав словарь _CHEETAH__cheetahIncludes
, хе).Это гарантировано?Понятия не имею.
Я рекомендую это?Нет. Есть ли лучший способ получить доступ к функции?Кажется, не быть.Есть ли недостатки?Понятия не имею, пользуйтесь на свой страх и риск.Может ли это быть полезным для кого-то?Может быть:)
Я имею в виду, что это может быть полезной функцией, потому что люди пытаются это сделать, но нужна ли эта функция?Вероятно, нет.
Мой вариант использования состоял в том, что я хотел повторно использовать фрагмент, который получал бы доступ к родительскому searchList, как и include, но я хотел повторно использовать это включение с одним жестко закодированным аргументом в других шаблонах. Я мог бы просто сделать эту переменную, которая в первую очередь изменяет часть поведения searchList, и это, вероятно, то, что вам следует делать :).Это также позволило бы мне передать его со слоя приложения вместо жесткого кодирования в моем шаблоне!
Скорее всего, это хороший дизайн, потому что он предотвращает сокращения, которые разработчики часто предпринимают, если позволяютсделать это легко.