Модули

Материал из wiki-MyMakerBot

Поддержка модулей

Если посмотреть документацию по смарти https://www.smarty.net/docs/en/language.function.function.tpl

то мы обнаружим функции - очень удобный инструмент. Но в силу архитектуры исполнения в конструкторе, мы не можем сложить функции в какой-то экшн, вызвать его, а потом воспользоваться функцией.

Но теперь такая механика возможна.

Вы создаете контроллер modules и в нем вы можете в любых экшенах размещать свои функции. При выполнении любой команды, тексты из этих экшенов будут ставиться в начало вашей команды. (Не выполнятся сразу, как делает команда import а именно подставляться тексты, потом выполняться) Удобно в них размещать как раз общие функции бота. Они будут вам доступны всегда.

Как создавать сами функции и как их вызывать - читайте в документации. Она на английскойм только, т.к. такая возможность есть в версии smarty 3

В команде import можно указать любой другой контроллер {import c='/cmd' modules='my_functions'} где my_functions - это контроллер с вашими функциями

Если в любом экшене в контроллере с модулями первый символ #, то данный экшн не подключается. Таким образом можно быстро вынести ту или иную функцию не удаляя

Согласен, что данное обновление несколько сложно для понимания новичкам, но людям, которые хотят писать продвинутых ботов, оно достаточно необходимо.