A drupal 8 modulunkat írjuk
A Drupal 8 kiadása megtörtént, és most van értelme ezt a rendszert részletesebben megvizsgálni. Maga a motor minden újdonsága, természetesen itt nem gondolunk rá, de azonnal megkezdjük a gyakorlást. A fejlesztők számára az egyik legfontosabb pont az egyedi modulok írása, mivel a többé kevésbé bonyolult projektek nem képesek a modulok írása nélkül.
Kezdjük. Kezdjük a fájl szerkezetével. Most minden egyedi modulnak az útvonalon kell lennie:
A modulom a következő lesz: - my_module. Hozz létre egy ún. My_module nevű mappát a fenti útvonalon. A fájlok neve is megváltozott.
Hozzon létre egy fájlt a modul gyökérkönyvtárában - my_module.info.yml. Ahogy talán kitaláltad, ez a fájl a my_module.info 7 fiókból való lecserélését eredményezte, de csak a modul leírásait tartalmazza. Az én esetemben - ez a fájl így néz ki:
Semmi sem mondható el különösebben, az irattárból egyértelműen mi a felelős azért mi. A fájl létrehozása után láthatjuk a modulunkat a modulok oldalon:
Amit természetesen aktiválunk.
Szeretném tudni, hogy most már nem lehet letiltani a modult. Csak két állam telepíthető és távolítható el.
Természetesen a modul aktiválása után nem látunk semmit, csak egy modul előtt álló pipa, amely jelzi, hogy telepítve van. Most megy az oldal létrehozásához. A Drupal 8-ban nem definiálhatjuk a hook_menu-t és létrehozhatunk új oldalt a webhelyen. Az útvonalat (útvonal) helyettesítették yml formátumban.
Hozzon létre egy my_module.routing.yml fájlt a modul gyökérkönyvtárában. Ez a fájl leírja az alapsablon útvonalát. Mivel az útvonal paraméterei olyan értékek, mint:
- Oldal címe
- Az oldal URL-je
- a vezérlő
- Hozzáférési jogok
- Stb
Esetünkben ezek a paraméterek elegendőek lesznek az oldal leírásához.
Minden útvonalnévnek egyedinak kell lennie (my_module.routing). Paraméterek listája:
- útvonal - a jövőbeli oldal URL-je
- alapértelmezett értékek - alapértelmezett értékeket tartalmaz. Minden érték az "_" előtaggal kezdődik
- _title - Oldal címe
- _controller - a vezérlő elérési útja, ahol a vezérlő osztályát és módját megadják (MyModuleController :: teszt)
- követelmények - függőségértékeket tartalmaz. Minden érték az "_"
- _permission - meghatározza az oldalhoz való hozzáférést, a mi esetünkben "minden olyan felhasználó számára, aki jogosult a tartalom megtekintésére"
Szeretném tudni, hogy a Drupal 8 korábbi verziói "_content" -et használtak a "_controller" helyett. Győződjön meg arról, hogy a Drupal 8 stabil verzióját használja.
A meghatározott útvonalakon. Vigyázzunk magunkra a vezérlőre, amelyet a "_defaults" paraméterben "_controller" -ként definiáltunk.
Minden modul vezérlőnek az útvonalon kell lennie
Hozzon létre a szükséges mappákat a modulon belül.
Ezután hozzon létre egy vezérlő fájlt. A fájlnév a "_controller" értékéből származik a my_module.routing.yml fájlban. A mi esetünkben a fájl neve: MyModuleController.
Hozzon létre egy MyModuleController.php fájlt a Vezérlő mappa gyökérkönyvtárában. Most, ahogy láthatja, az OOP-val foglalkozunk. Ebben a fájlban meg kell adnunk a MyModuleController osztályt és annak vizsgálati módját. Az osztály és a módszer nevei, szintén a my_module.routing.yml fájlból származunk. A mi esetünkben ez a fájl így néz ki:
Szeretném tudni, hogy a teszt módszernek mindig tömbje kell legyen.
Ismét használt névtér. ne felejtsd el, ha nem akarsz problémát okozni a jövőben. Ha valaki nem tudja, akkor megszabadulunk a két azonos nevű osztálytól.
A vezérlővel együtt döntöttünk is. Most megtisztítjuk a webhely gyorsítótárát, megyünk az úton
Most meg kell adnunk egy menüpontot a webhely főmenüjébe. Ehhez a modul gyökerében hozza létre a my_module.links.menu.yml fájlt. amelyben leírjuk a menüpontot. A mi esetünkben ez a fájl így fog kinézni:
- title - a menüelem neve
- leírás - A menüpont leírása
- menu_name - a menü neve, amelyhez menüelemet szeretnénk hozzáadni
- útvonal_neve - annak az útvonalnak a neve, amelyre ez a menüpont kötve lesz
- a tömeg a menüelem súlya
Amint látjuk, a feladatot szem előtt tartottuk. A modulok modulja bonyolultabbá vált, de mégis rugalmasabbá vált, és végül felhasználhatjuk az OOP kedvenc megközelítését.