ПредишенСледващото

Освобождаването на Drupal 8 се състоя и сега има смисъл да се помисли за тази система по-подробно. Всички нововъведения на двигателя, разбира се, ние не трябва да обсъждат тук, и да се пристъпи директно да практикуват. Един от акцентите на разработчиците е да напишете потребителски модули, защото никой не е повече или по-сложен проект не е без писане на модули.

Продължи. Ще започнем с файловата структура. Сега, всички потребителски модули трябва да са на път:

Моят единица ще бъде по-нататък - my_module. Създайте папка с името my_module горния път. Самото име на файла, просто се промени.

Създайте файл в основата на нашия модул - my_module.info.yml. Както можете да предположите, този файл замества - my_module.info от 7 клона, но и носи със себе си описание на модула. В моя случай - файла изглежда така:

Няма нищо специално, за да кажа, от файл е ясно, че е отговорен за това, което. След създаването на файла, можем да видим нашия модул на страницата на модула:

Писане на модул за Drupal 8

Което, разбира се, ние ще се активира.

Искам да отбележа, че сега е невъзможно да се изключи модула. Има само две държави, монтажа и демонтажа.

Естествено, след активирането на модула няма да видим нещо друго, освен отметка пред нашия блок, което означава, че е инсталиран. Сега преминете към страницата за създаване. В Drupal 8, сега ние не можем да определим hook_menu и създаване на нова страница в сайта. Те бяха заменени от маршрута (маршрутизиране [пътища]) в YML формат.

My_module.routing.yml създадете файл в основата на нашия модул. Този файл се използва за описание на маршрута на базовия модел. Като параметри на маршрута са такива стойности:

  • Заглавието на страницата
  • URL на страницата
  • контролера
  • Разрешения
  • И т.н.

В нашия случай, тези параметри ще бъдат достатъчни, за които ще се описва в страницата.

Всяко име трябва да е уникално маршрутизация (my_module.routing). Параметри на списъка:

  • път - URL следващата страница
  • по подразбиране - съдържа стойности по подразбиране. Всички стойности, започващи с "_" префикс
  • _title - заглавие на страница
  • _controller - път към контролера, което допълнително определя контролер клас и метод (MyModuleController :: тест)
  • изисквания - се състои на зависимост ценности. Всички стойности са същите започват с "_" префикс
  • _permission - определя достъпа до страницата, в този случай, "За всички потребители, които имат право да разглежда съдържанието на"

Бих искала да отбележа, че в по-ранни версии на Drupal 8 използва «_content», вместо «_controller». Уверете се, че използвате стабилна версия на Drupal 8.

С този маршрут. Сега за самия контролер, който са посочили в параметъра «_defaults» на стойност «_controller».

Всички модулни контролери трябва да бъдат по пътя

Създаване на папки в модула.

На следващо място, създаване на контролер файла. Името на файла е взета от стойността на «_controller» в my_module.routing.yml файл. В нашия случай, файлът ще бъде по-нататък MyModuleController.

MyModuleController.php създадете файл във контролер в главната папка. Сега, както можете да видите, ние трябва да се справят с ООП. В този файл трябва да определим нашия клас MyModuleController и начина му на тест. Имената на класове и методи, ние също отнеме от my_module.routing.yml файл. В нашия случай, файлът изглежда така:

Бих искала да отбележа, че методът за изпитване винаги трябва да се има предвид масива.

Ние също така се използва пространството от имена. не забравяйте за това, ако не искате да получите проблеми в бъдеще. Ако някой не знае, това ни позволява да се отървете от 2 еднакво име клас.

С контролера, ние току-що реши. Сега ясно мястото на кеша, се минава по пътя

Писане на модул за Drupal 8

Сега, ние трябва да добавите елемент от менюто в главното меню на сайта. За да направите това, в основата на нашия модул, създаване my_module.links.menu.yml файл. в които ще опишем елемента. В нашия случай, този файл ще изглежда така:

  • заглавие - името на елемента от менюто
  • описание - описание на елемента от менюто
  • MENU_NAME - име на менюто, в което искаме да добавим елемент от менюто
  • ROUTE_NAME - име на маршрута, на които трябва да бъдат обвързани елемента от менюто
  • тегло - теглото на елемент от менюто

Писане на модул за Drupal 8

Както можем да видим, със задачата ние успяхме. Модули писмена система достатъчно сложно, но все пак е станала по-голяма гъвкавост, и най-накрая можем да използваме всички любимите ни подход обектно-ориентиран.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!