Модули: различия между версиями
Sergahell (обсуждение | вклад) м (Защитил страницу Модули ([Редактирование=Разрешено только администраторам] (бессрочно) [Переименование=Разрешено только администрато…) |
Sergahell (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | Поддержка модулей | + | === Поддержка модулей === |
Если посмотреть документацию по смарти | Если посмотреть документацию по смарти |
Версия 13:22, 28 мая 2019
Поддержка модулей
Если посмотреть документацию по смарти https://www.smarty.net/docs/en/language.function.function.tpl
то мы обнаружим функции - очень удобный инструмент. Но в силу архитектуры исполнения в конструкторе, мы не можем сложить функции в какой-то экшн, вызвать его, а потом воспользоваться функцией.
Но теперь такая механика возможна.
Вы создаете контроллер modules и в нем вы можете в любых экшенах размещать свои функции. При выполнении любой команды, тексты из этих экшенов будут ставиться в начало вашей команды. (Не выполнятся сразу, как делает команда import а именно подставляться тексты, потом выполняться) Удобно в них размещать как раз общие функции бота. Они будут вам доступны всегда.
Как создавать сами функции и как их вызывать - читайте в документации. Она на английскойм только, т.к. такая возможность есть в версии smarty 3
В команде import можно указать любой другой контроллер {import c='/cmd' modules='my_functions'} где my_functions - это контроллер с вашими функциями
Если в любом экшене в контроллере с модулями первый символ #, то данный экшн не подключается. Таким образом можно быстро вынести ту или иную функцию не удаляя
Согласен, что данное обновление несколько сложно для понимания новичкам, но людям, которые хотят писать продвинутых ботов, оно достаточно необходимо.