Noi scriem modulul nostru pentru drupal 8

Eliberarea Drupal 8 a avut loc și acum este logic să ia în considerare acest sistem în detaliu. Toate inovațiile motorului în sine, nu vom lua în considerare în mod firesc aici, dar vom proceda imediat la practică. Unul dintre punctele importante pentru dezvoltatori este scrierea modulelor personalizate, pentru că nici un proiect mai mult sau mai puțin complex nu se poate face fără a scrie modulele.







Să începem. Să începem cu structura fișierului. Acum, toate modulele personalizate ar trebui să fie pe cale:

Modulul meu va fi numit ca - my_module. Creați un folder numit my_module pe calea specificată mai sus. Și numele fișierelor sa schimbat.

Creați un fișier în rădăcina modulului nostru - my_module.info.yml. Așa cum ați fi ghicit, acest fișier a venit să înlocuiască my_module.info din 7 filiale, dar conține, de asemenea, numai descrieri pentru modul. În cazul meu - acest fișier arată astfel:

Nu este nimic de spus în special, din dosar este clar ce este responsabil pentru ce. După crearea acestui fișier, putem vedea modulul nostru pe pagina modulelor:

Noi scriem modulul nostru pentru drupal 8

Care, activăm în mod natural.

Vreau să observ că acum nu puteți dezactiva modulul. Există doar două stări de instalat și eliminate.

Firește, după activarea modulului, nu vom vedea nimic, cu excepția unui marcaj în fața modulului nostru, care indică faptul că acesta este instalat. Acum du-te pentru a crea pagina. În Drupal 8, nu putem defini acum hook_menu și să creați o nouă pagină pe site. El a fost înlocuit de rutare (rutare) în format yml.

Creați fișierul my_module.routing.yml în rădăcina modulului nostru. Acest fișier servește pentru a descrie ruta șablonului de bază. Ca parametri ai traseului există valori precum:

  • Titlul paginii
  • Adresa URL a paginii
  • controlerul
  • Drepturi de acces
  • Etc.

În cazul nostru, acești parametri vor fi suficienți pentru a descrie pagina.







Fiecare nume de rutare trebuie să fie unic (my_module.routing). Lista parametrilor:

  • cale - adresa URL a paginii viitoare
  • implicite - conține valori implicite. Toate valorile încep cu prefixul "_"
  • _title - Titlul paginii
  • _controller - cale către controler, unde sunt specificate clasa și metoda controlerului (MyModuleController :: test)
  • cerințe - conține valori de dependență. Toate valorile încep, de asemenea, cu prefixul "_"
  • _permission - definește accesul la pagină, în cazul nostru "Pentru toți utilizatorii care au dreptul să vizualizeze conținutul"

Vreau să observ că versiunile anterioare ale Drupal 8 au folosit "_content" în loc de "_controller". Asigurați-vă că utilizați o versiune stabilă a Drupal 8.

Cu determinarea rutelor. Acum, să ne ocupăm de controlerul propriu-zis, pe care l-am specificat în parametrul "_defaults" ca "_controller".

Toți modulatorii trebuie să fie în cale

Creați folderele necesare în interiorul modulului.

Apoi, creați fișierul controlerului. Numele fișierului este luat din valoarea "_controller" din fișierul my_module.routing.yml. În cazul nostru, fișierul va fi numit MyModuleController.

Creați fișierul MyModuleController.php în rădăcina folderului Controlor. Acum, după cum puteți vedea, avem de-a face cu OOP. În acest fișier, trebuie să definim clasa MyModuleController și metoda de testare. Numele clasei și al metodei, de asemenea, luăm din fișierul my_module.routing.yml. În cazul nostru, acest fișier arată astfel:

Vreau să observ că metoda de testare trebuie întotdeauna să returneze o matrice.

Am folosit, de asemenea, spațiul de nume. nu uitați despre asta, dacă nu doriți să aveți probleme în viitor. Dacă cineva nu știe, ne permite să scăpăm de cele două clase denumite în mod egal.

Cu controlorul, am decis, de asemenea. Acum, curățăm cache-ul site-ului, mergem pe drum

Noi scriem modulul nostru pentru drupal 8

Acum, trebuie să adăugăm un element de meniu în meniul principal al site-ului. Pentru aceasta, la baza modulului nostru, creați fișierul my_module.links.menu.yml. în care vom descrie elementul din meniu. În cazul nostru, acest fișier va arăta astfel:

  • titlu - numele elementului de meniu
  • descriere - descrierea elementului de meniu
  • nume_menu - numele meniului la care dorim să adăugăm un element de meniu
  • nume_trada - numele rutei la care va fi legat acest element din meniu
  • greutatea este greutatea elementului din meniu

Noi scriem modulul nostru pentru drupal 8

După cum vedem, ne-am confruntat cu această sarcină. Sistemul de scriere a modulelor a devenit mai complicat, dar totuși a devenit mai flexibil și, în final, putem folosi abordarea noastră favorită față de OOP.







Articole similare

Trimiteți-le prietenilor: