Php névtér
A PHP az 5.3-as verzió óta névteret adott nekünk. Azóta lassú és valódi vita folyik, hogyan használják ezt a névteret?
Néhány keret, például a Symphony, a Laravel és természetesen a Zend is bevezették ezt a technológiát.
Mindez többé-kevésbé illeszkedik az MVC rendszerébe. Volt egy, valószínűleg örökkévaló, vita, mi lenne a fő pár az alkalmazás - Modell és Controller?
Néhányan közülünk azt mondják, hogy a modellnek vastagnak és vastagnak kell lennie, és egy vékony és karcsú szabályozóval. Egy szóval - matriarchia.
Mások ellenben úgy vélik, hogy az ellenőrnek mindent és parancsot kell kezelnie, így alapos, jól táplált. És vele egy vékony, karcsú modell, amelynek feladata a kiszolgáláshoz szükséges. Ilyen patriarchátus.
Tehát mi a jobb az MVC-rendszerben? Patriarchátus vagy matriarchia?
Nézzük meg ezt a demokrácián alapuló családi cellák építésének szempontjából. És a Névtér segítsen nekünk ebben.
Nem szeretjük a vastag, könyörtelen vezérlőket, akik, mint egy elefánt egy porcelánboltban, véletlenül összetörik az egész alkalmazást.
Nem szeretjük a vastag modelleket sem. Nos, ki tetszik? Érdemes megérni a dobogóra!
Próbáljuk meg használni a névteret, mint egy jó vágott, hogy hozzon létre egy harmonikus család.
Először létrehozzuk az alkalmazás keretét. Mivel banális, de legyen egy blog.
Létrehoztuk az alapvető struktúrát, ahol:
- A blog az alkalmazásunk tárolója;
- Nézetek és sablonok - nézetek és sablonok tárolója;
- Utility - a megosztott könyvtárak tárháza;
- index.php - bootstrap parancsfájl;
- Post - ez az a hely, ahol a szabályozó és a modell családi idillje kell.
Az index.php használatával minden egyszerű:
A blogosztály létrehozásakor a Post osztályt beillesztjük a Névtér BlogPostba, és az automatikus feltöltő letölti a Blog / Post / Post.php webhelyről.
Valószínűleg ezt az osztályt Controllernek nevezhetjük,
A Post lényege magában foglalja:
- maga az adatrekord felépítése - BlogPostEntitiesPostEntity.php
- az adatbázis-kölcsönhatás rendszere - BlogPostRepositoriesDB.php - itt van a karcsú, elegáns modellünk,
Csak hozd el, és semmi mást!
Ennek eredményeképpen sikerült létrehoznunk egy olyan alkalmazásstruktúrát, amelyben minden összetevő jól kapcsolódik, és elértük az osztályok egyértelmű szétválasztását, ahol minden osztály elvégzi feladatát. A vezérlő egyidejűleg vékony és erőteljes. A modell alkalmas rá. Ideális család!
És mindegyik a névtér.
Nem vitatkozom, sok esetben a keret kényelmes. De nézd, a névtér nem emlékeztet semmitre?
Világos osztályokba osztás, szigorúak, ugyanakkor rugalmasak, teljesen alárendelve a katalógusok és osztályok fejlesztői hierarchiájának.
Az ilyen súlyos kiegészítés hiánya több száz fájl és osztály formájában, keret formájában.
Az osztályok és komponensek interakciójával kapcsolatos szabályozó testület hiánya.