Yii modulok
A modulok önálló program blokkolja. melynek keretében mintákat. nézeteit. vezérlők, és egyéb járulékos komponensek. A végfelhasználók hozzáférhetnek a modul vezérlő. ha be van állítva az alkalmazásban. Ezen okok miatt a modulok gyakran tekintik mini-alkalmazás. A modulok különböznek alkalmazások, hogy a modulok nem lehet telepíteni egyedül kell lennie az alkalmazásokat.
Létrehozása modulok ¶
A modul szerveződik, mint egy könyvtár. amely az úgynevezett alap útját a modul. A katalógusban vannak alkönyvtárak, például vezérlők. modellek. nézeteit. amely rendelkezik a szabályozók, modellek, nézetek és más kódot is. mind az alkalmazásban. A következő példa azt mutatja, a tartalmát a modul belsejében:
Modul osztály ¶
Minden modul kell egy egyedi modul osztályban. ami fut yu \ Base \ modult. Az osztály kell elhelyezni közvetlenül a modul bázis utat, és meg kell autoloadable. A modul elérhető, egy példányát az érintett egység osztály jön létre. Mivel az esetekben a kérelmet. példányban modul adatcserére használják és komponensek kód modulokat.
Az alábbiakban egy példa arra, hogy az osztály modul a következőképpen nézhet ki:
Ha az init () metódus tartalmaz sok inicializáló kódot modul tulajdonságait, akkor is menteni őket a szempontból a konfigurációs és töltse be az alábbi kódot az init ().
Vezérlők modulok ¶
Amikor létrehoz egy vezérlő modult, egy megállapodás, hogy a vezérlő osztályok vezérlők alatt al-névtér az osztály nevét tér modult. Ez azt is jelenti. hogy a vezérlő osztályban fájlokat kell helyezni a vezérlők könyvtárban modulon belül a bázis utat. Például, hogy hozzon létre a bejegyzést az ellenőrző modul fórum. Látható az előző pontban, akkor nyilatkoznia kell a vezérlő osztály, mint a következő:
Itt lehet beállítani a névtér osztályok vezérlők beállításával yu \ base \ modult. $ ControllerNamespace tulajdonságait. Abban az esetben. ha néhány, a szabályozók kívül található a névtér, akkor elérhetővé teszi azáltal Yii \ base \ Module :: $ controllerMap tulajdonság, csak. mit csinálsz egy alkalmazást.
Szempontok modulok ¶
Szempontok a modul alá kell helyezni a véleményét könyvtárban a modulban bázis utat. Nézetekhez. által biztosított vezérlő modul, akkor alá kell helyezni, a nézetek / ControllerID könyvtárban. ahol ControllerID utal, hogy a vezérlő ID. Például, ha egy vezérlő osztályban PostController. könyvtár lesz megnézve / post a modulon belül bázis utat.
A modul a kívánt elrendezést. amely vonatkozik nézeteit. feltéve, hogy a modul vezérlők. Az elrendezés kell helyezni views / layouts mappa alapértelmezés szerint, és úgy kell beállítani yu \ base \ modult. $ Layout tulajdon. megadásához az elrendezés nevét. Ha nem módosíthatja az elrendezést tulajdonságait, alkalmazási elrendezés fogja használni.
CLI parancsok modulok ¶
A modul is be a csapat, amely elérhető lesz a konzol módban.
Rend. A parancssori segédprogramokat. hogy a csapat, akkor meg kell változtatni yu \ base \ modult. $ ControllerNamespace tulajdonság, Yii fut konzol módban, és küldje el a csapat nevét.
Az egyik módja annak, hogy ezt elérhesse. hogy ellenőrizze a típusú fokon Yii alkalmazás modul init () módszer:
A csapat lesz elérhető a parancssorban a következő útvonalon:
A modulok ¶
Annak érdekében, hogy a modult az alkalmazás, csak a szoftver az adott átadásával a modult a modulok ingatlan a kérelmet. Az alábbi kódot az alkalmazás konfigurációs modul használja a fórumot:
Modulok elfogadja egy sor modulok konfigurációk. Minden kulcs a tömb egy olyan modul azonosítója. amely egyedileg azonosítja a modul között alkalmazás modulok, és a megfelelő érték a tömb van kialakítva, hogy egy modul létrehozásához.
útvonalak ¶
Hozzáférés a modulok ¶
Modulon belül, gyakran van szükség, hogy a modul példányt. így érheti a modul azonosító modul paramétereit, a modul alkatrészek, stb Megteheti ezt a segítségével a következő nyilatkozatot:
ahol MyModuleClass utal, hogy a modul osztály nevét. amely érdekli. getInstance () metódus visszaadja a kért pillanatában a modul példány. Ha a modul nem szükséges, ez a módszer visszatér null. Felhívjuk figyelmét, hogy nem szeretné, hogy manuálisan létrehozni egy új példányt az osztály modult, hiszen ez lesz eltér a létrehozott Yii, amikor megkérdezi.
Információ: A fejlesztés a modult, akkor nem kell számolni. A modul egy fix azonosítót. Ez azért van, mert a modul lehet társítva egy tetszőleges ID használata az alkalmazás vagy egy másik modul. Rend. hogy a modul azonosítója, akkor használja a fenti megközelítést. hogy a példány a modul, akkor kap az azonosítót használja $ modulrendszerűen> id.
Azt is elérhetővé válik a modul például a következő megközelítések:
Az első megközelítés csak akkor hasznos, ha tudod az ID a modul, míg a második megközelítés a legjobban használható, ha tud a vezérlő kéri.
Ha van egy példánya a modul, akkor kap hozzáférést a paramétereket és alkatrészek regisztrált a modult. Például,
Modulok betöltő ¶
Egyes modulok kell futtatni minden kérelem esetében. hibakereső modul egy példát. Erre a célra egy azonosítók listájának a modulok egy alkalmazás bootstrap tulajdon.
Például, az alábbi alkalmazás konfigurációs garanciák. hibakereső modul mindig betöltődik:
Beágyazott modulok ¶
A modulok ágyazhatók korlátlan szinten. Azaz, egy modul tartalmazhat egy másik modul, amely tartalmazhat még egy modult. Felhívjuk a korábbi szülő modul, míg az utóbbi a gyermek modult. Gyermek modulok be kell jelenteni a modulok ingatlan a szülő modult. Például,
A vezérlő belsejében a beágyazott modul útvonala tartalmaznia kell az identitását minden őseik modulokat. Például forum / admin / műszerfal / index az útvonal index akció műszerfal vezérlő admin - modulban. amely leányvállalat fórum modul modul.
Információ: getModule () metódus visszaadja csak a modul közvetlenül a gyermek kötődés a szülő. Yii \ base \ Application :: $ loadedModules tulajdonság tárolja egy listát a betöltött modul, beleértve a közvetlen. és a gyermekek számára egyaránt. egymásba ezen osztályok által indexelt nevüket.
A legjobb gyakorlatok ¶
A modulok a legjobb alkalmazási nagy alkalmazások, amelyek funkciói lehet osztva csoportokra, amelyek mindegyike egy több szorosan kapcsolódó funkciók. Az egyes csoportok lehet tervezni, mint egy modult, amelyet fejleszteni és fenntartani az adott fejlesztő vagy csapat.