Начал осваивать Д8, пробую сделать под него небольшой кастомный модуль. Куча вопросов и непоняток с тем, как в нем все лучше организовать...
Самый пока волнующий вопрос: надо сделать несколько небольших "служебных" функций (порядка двух десятков). Каждая из которых может вызываться из разных мест модуля (из форм, контроллеров и др.). Имеет на входе какие-то параметры, выдает какой-то результат, который затем используется при формировании формы, выводе страницы и т.п.
Правильно ли я понимаю, что в 8-ке самый правильный способ сделать это - через механизм плагинов? Или есть более простой путь?
Комментарии
Плагины / сервисы + все преимущества ООП.
Можете, конечно, и процедурно реализовать, но это совсем не комильфо.
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 ? )
...Меня никак на покидает ощущение стрельбы из пушки по воробьям...
См. examples
Господа, выручайте!
У меня получается уже не то что пушка - какая-то межконтинентальная ракетная установка для стрельбы по воробьям!
Задачка простенькая: реализовать в модуле набор элементарных функций, имеющих что-то на входе и по простому алгоритму выдающих результат. Ну например: по id ноды выдать количество символов в ее заголовке. Нафиг тут не нужно никакое ООП, никакие наследования, инкапсулирования и прочие ОО-прибамбасы! Нужно только, чтобы набор этих простеньких функций был доступен из всех классов моего модуля: из форм, контроллеров и т.п.
Натолкните плз на мысль, как это в Д8 реализовать максимально простым способом???
Наконец нашлось простое и вроде как кошерное решение:
https://drupalfly.ru/lesson/drupal-8-ispolzovanie-kastomnyh-klassov-v-sv...