Advertisement
Guest User

Untitled

a guest
Jul 15th, 2022
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.46 KB | None | 0 0
  1. Существует два способа расширения MaidBox:
  2. 1) Создать Symfony Bundle.
  3. 2) Создать MaidBox Module.
  4.  
  5. ===
  6. Symfony bundle
  7. ===
  8. Подробнее: https://symfony.com/doc/5.3/bundles.html
  9.  
  10. ===
  11. MaidBox Module
  12. ===
  13. Для расширения возможностей MaidBox нужно создать каталог с названием модуля в каталоге src/, структура должна быть следующая:
  14. Controller - контроллеры,
  15. Service - сервисы,
  16. EventListener - слушатели событий,
  17. Entity - модели,
  18. Repository - репозитории,
  19. Util/Utils/Lib/Library - утилиты/библиотека,
  20. Module.php - специальный файл для управления модулем.
  21.  
  22. Module.php должен иметь следующее содержимое.
  23. <?php
  24. namespace MaidBox\Название_Модуля;
  25.  
  26. use MaidBox\ModulesManager\Service\AbstractModule;
  27.  
  28. class Module extends AbstractModule {
  29.    
  30. }
  31.  
  32. ===
  33. MaidBox Module \ EventListener
  34. ===
  35. EventListener автоматически определяется, если имеет одно из следующих названий:
  36. RequestListener
  37. ControllerListener
  38. ControllerArgumentsListener
  39. ViewListener
  40. ResponseListener
  41. FinishRequestListener
  42. TerminateListener
  43. ExceptionListener
  44.  
  45. В Module.php допускается возможность установить общий приоритет EventListener с помощью переменной $defaultEventPriority.
  46. <?php
  47. namespace MaidBox\Название_Модуля;
  48.  
  49. use MaidBox\ModulesManager\Service\AbstractModule;
  50.  
  51. class Module extends AbstractModule {
  52.     protected $defaultEventPriority = 1;
  53. }
  54.  
  55. В том случае, если каждый EventListener должен иметь свой собственный приоритет, нужно переопределить метод enableEventListeners.
  56. <?php
  57. namespace MaidBox\Название_Модуля;
  58.  
  59. use MaidBox\ModulesManager\Service\AbstractModule;
  60. use MaidBox\ModulesManager\Util\Config\ServicesYaml;
  61.  
  62. class Module extends AbstractModule {
  63.  
  64.     // Метод активирует слушатели событий находящиеся в каталоге EventListener модуля.
  65.     public function enableEventListeners(bool $cacheClear = true) {
  66.         ServicesYaml::installEventListener($this, 'название EventListener', 'приоритет', 'название Event (не обязательно, определяется автоматически по названию EventListener');
  67.         ServicesYaml::installEventListener($this, 'название EventListener2', 'приоритет', 'название Event (не обязательно, определяется автоматически по названию EventListener2')
  68.         if($cacheClear == true) {
  69.             $this->cache->clear();
  70.         }
  71.     }
  72.    
  73. }
  74.  
  75. ===
  76. MaidBox Module \ Config
  77. ===
  78. Конфигурация модуля в файлах.
  79.  
  80. Класс Module имеет метод getConfig(), который возвращает конфигурацию из каталога /src/НазваниеМодуля/Resources/config или /config/maid_box/название_модуля, файл конфигурации должен называться default и иметь один из трёх допустимых форматов: php, yaml, ini. В том случае, если пользователь способен изменять конфигурацию, нужно использовать методы, которые создают/изменяют файл custom.php.
  81. setConfig(array $config) - Метод для установки конфигурации с записью в файл.
  82. setConfigSetting($setting, $value) - Метод для установки отдельной опции конфигурации с записью в файл.
  83. setConfigSettings(array $settings) - Метод для установки нескольких опций конфигурации с записью в файл.
  84.  
  85. Конфигурация модуля в файлах и базе данных.
  86.  
  87. Вы так же имеете возможность хранить конфигурацию модуля в базе данных, для этого нужно использовать сервис Config модуля Config, который имеет следующие методы.
  88.  
  89. getAll() - Получить конфигурацию всех модулей.
  90. getOne($module, $setting) - Получить одну запись из таблицы конфигурации.
  91. get($module = false, $setting = false) - Получить запись или несколько записей из таблицы конфигурации.
  92. add($module, $setting, $value = null, $flush = true) - Добавить одну опцию конфигурации.
  93. addMany($module, array $settings) - Добавить несколько опций конфигурации.
  94. set($module, $setting, $value, $flushForAdd = true) - Установить значение одной опции конфигурации.
  95. setMany($module, array $settings) - Установить значение нескольких опций конфигурации.
  96. deleteAll() - Удаление всей конфигурации.
  97. delete($module = false, $setting = false) - Удаление конфигурации.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement