Как лучше реализовать "служебные" функции в модуле?

Главные вкладки

Аватар пользователя AnNik AnNik 3 декабря 2017 в 14:15

Начал осваивать Д8, пробую сделать под него небольшой кастомный модуль. Куча вопросов и непоняток с тем, как в нем все лучше организовать...

Самый пока волнующий вопрос: надо сделать несколько небольших "служебных" функций (порядка двух десятков). Каждая из которых может вызываться из разных мест модуля (из форм, контроллеров и др.). Имеет на входе какие-то параметры, выдает какой-то результат, который затем используется при формировании формы, выводе страницы и т.п.

Правильно ли я понимаю, что в 8-ке самый правильный способ сделать это - через механизм плагинов? Или есть более простой путь?

Лучший ответ

Комментарии

Аватар пользователя AnNik AnNik 4 декабря 2017 в 6:55

Bumble, спасибо!
Итак, правильно ли я понял из https://niklan.net/blog/134 и поковырявшись в нескольких контрибных модулях, что должно быть минимум 4 файла:
1. mymodule/mymodule.services.yml, где перечислены все классы плагинов и аргументы, передаваемые их конструкторам;
2. mymodule/src/MyPluginClassNameInterface.php, где перечислены все public константы, переменные и функции этого плагина;
3. mymodule/src/MyPluginClassName.php, где собственно и реализованы нужные функции;
4. mymodule/src/MyPluginClassNameManager.php, где лежит только конструктор этого класса (или его можно запихать в mymodule/src/MyPluginClassName.php ? )

...Меня никак на покидает ощущение стрельбы из пушки по воробьям...

Аватар пользователя AnNik AnNik 5 декабря 2017 в 14:29

Господа, выручайте! Smile
У меня получается уже не то что пушка - какая-то межконтинентальная ракетная установка для стрельбы по воробьям!

Задачка простенькая: реализовать в модуле набор элементарных функций, имеющих что-то на входе и по простому алгоритму выдающих результат. Ну например: по id ноды выдать количество символов в ее заголовке. Нафиг тут не нужно никакое ООП, никакие наследования, инкапсулирования и прочие ОО-прибамбасы! Нужно только, чтобы набор этих простеньких функций был доступен из всех классов моего модуля: из форм, контроллеров и т.п.

Натолкните плз на мысль, как это в Д8 реализовать максимально простым способом???