Egy példa a fejlesztési blog Zend Framework 2

Az elmúlt néhány évben, a munkám van kötve a használata CMS Drupal. de a szabadidejében, és tanultam csak szórakozásból elindított projektek Pythonic keretek Django. Lombik és Twisted. Most úgy döntöttem, hogy megtanulják az alapokat a két vagy három legjobb a PHP számára, akik szeretnének, és először úgy döntött, hogy megtanulják a Zend Framework 2 és Yii.

Emésztésével az összes információ, én arra a következtetésre jutott, hogy a hivatalos bemutató, hogy a keretrendszer száraz:

  • ez nem azt mondta a munka a felhasználókkal, ülések, és a hozzáférési jogok
  • csak rövid ideig tartják ilyen alapvető része a keret mint ServiceManager,
  • mint egy interfész használatával az adatbázishoz mintázat vitatott táblázat Gateway (és annak megfelelő végrehajtása keretében,),
  • használja a beépített sablon keret, ami után Jinja 2. Python tűnik, meglehetősen kényelmetlen és primitív,
  • stb

Ennek eredményeként, többé-kevésbé kielégítő funkcionális alkalmazás, képes voltam létrehozni elolvasása után a könyvet.

Ebben a cikkben szeretnék adni egy példát a fejlődés egy egyszerű blog, lesz némi eltérés a hivatalos bemutató. Először megpróbálom azokra a kérdésekre, amelyek a tanulmány tűnt számomra nem eléggé nyilvánosságra a hivatalos bemutató. Ezen kívül, azt fogja használni bizonyos technológiával, alternatívát azoknak használt Zend Framework, alapértelmezés:

  • Az első (aktuális) részben megvizsgálom a szerkezet ZendSkeletonApplication,
  • A második rész a modul teszi ki a saját fejlesztés (formák, a munka adatbázisokat a Tan ORM, edzés megtekintése csatlakozó)
  • A harmadik részben kapja dolgozni felhasználók.

A szöveg a cikk néha a forrás külső alkalmazások vagy fájlok automatikusan generálja az összeállítást. Az adattárak ilyen fájlok hiányoznak, ez a mélyebb vizsgálatot fejlesztettek a bemutató alkalmazás, akkor telepíteni kell a szükséges szoftvert a saját.

ZendSkeletonApplication

(A megfelelő beállítást, php composer.phar paranccsal lehet egyszerűen helyettesíteni zeneszerző. De később ebben a cikkben adok az első lehetőség, mint egy sokoldalú)

Miután a teljesítmény, akkor kap az alkalmazás szerkezete a következő (I maradt csak a legérdekesebb könyvtárak és fájlok):

Nézzük részletesen elemezni az újonnan létrehozott könyvtárak és fájlok.

A szerkezet a projekt

composer.json

Kezdjük composer.json fájlt a projekt gyökér. Tart az alábbi űrlapot:

Ebben a fájlban meg az alkalmazás használandó paraméterek összeállító. A legérdekesebb része ez a config részben a szükség, amely tartalmazza a listát a külső könyvtárak, hogy az alkalmazás függ. Most a lista függőségek csak Zend Framework 2, de a jövőben, akkor hozzá itt néhány függőségek: Tan, gally, és mások. Hozzáadása után egy új függőségi elegendő lesz teljesíteni a konzol parancsot:

Zeneszerző és töltse le a szükséges könyvtárakat. Minden külső függőségek adunk a könyvtárban eladó. Most már láthatjuk, hogy a könyvtárban Zend Framework és zeneszerző.

dokumentum gyökér

Document_root a bejelentés nem a projekt gyökér, és az állami könyvtárban. Itt látható a index.php - a belépési pont a projekt, és ez a munka egy könyvtárat, hogy a webszerver kell konfigurálni.

Index.php végez számos fontos feladatot, két legérdekesebb ezek közül a kapcsolatot a külső könyvtárak, az alkalmazás betöltése során konfiguráció, és futtatni.

A külső könyvtárak végrehajtott init_autoloader.php fájlt a gyökere a projekt, ami viszont a gyártó / autoload.php és utána automatikusan generált Zeneszerző vendor / zeneszerző / autoaload_real.php fájlt. Ebben a fájlban AutoLoad meghatározott módszerek letöltött Composer külső könyvtárak. Amikor tehát kódolni a modulok kapcsolódni fog névterek jellegű Zend \ nézet \ Model \ ViewModel PHP tudni fogja, hogy mely fájlokat kell keresni ezeket névterek.

Betölti az alkalmazás konfigurációs fájl és futtatja. A folyamat inicializálása a kérelmet (a módszer hívja Zend \ MVC \ Application :: init ()) létrehoz ServiceManager - a legfontosabb célja használják számos részén a kérelmet. Alapértelmezett ServisMenedzher létrehoz egy másik kulcs objektumot - EventManager. A jövőben, ha fogunk létrehozni saját modulokat a saját beállításait, tájékoztatni fogjuk ServisMenedzheru milyen más tárgyakat kell létrehozni a mi modult.

Mintegy ServisMenedzhere később beszélünk, most vessünk egy közelebbi pillantást config könyvtárban. Ez application.config.php fájlt. egy tömböt ad vissza az alkalmazás konfiguráció, amely meg tudja mondani egy csomó érdekes dolgot.

A tömb tartalmaz egy listát a modulokat modulok, most már csak egy engedélyezett az alkalmazás modul, de lesznek még a jövőben.

Module_listener_options tömb tartalmaz két érdekes elem: tömbök és module_paths config_glob_paths.

Array module_paths megmondja, hogy hol találja a plug-inek alapértelmezés szerint a könyvtárakban az eladóval - külső függőségek és modul - lesz modulok általunk kifejlesztett a projekthez.

Config_glob_paths tartalmaz maszk utak a konfigurációs fájlok modul. A reguláris kifejezés 'config / autoload / .php' azt jelenti, hogy az összes fájl kerül letöltésre module_name..php fajok global.php, local.php config / autoload könyvtárban.

Így először betölti a beállításokat a config / application.config.php fájlt, majd betölti a beállításokat a config fájl / autoload / .php és az utolsó betöltött előre megadott beállításokat a modul szintjén (megbeszéljük később).

Ha a config / autoload két beállítás a fájl azonos modul: globális és lokális (module_name.global.php és module_name.local.php), akkor az első lépés betöltött globális fájlt, és a helyi utána, hogy van, a helyi beállítások elsőbbséget élveznek a globális.

local.php fájlokat és * .local.php alapértelmezett .gitignore a fájl tartalmazza (ha egy másik verziókezelő rendszert, akkor kell hozzá egy kivételt kézzel), és csak akkor kell használni megfelelő beállítási csak a jelenlegi környezetben. Azaz, ha van egy projekt egyik vagy másik kísérletben számos különböző platformon: gyártási, vizsgálati és fejlesztési platformok, a globális alkalmazás beállításait kell tárolni vonatkozó adatokat az összes ilyen helyeket, és a helyi - egyedi minden helyszínen, például adatokat az adatbázis eléréséhez.

Eltekintve a globális és a teljes alkalmazás konfigurációs fájlok, minden modul lehet saját konfigurációs fájl. Az ilyen modulok konfigurációs fájlok betöltése abban a sorrendben, amelyben a meghatározott lista az aktív modulok application.config.php fájlt. Így, ha szeretne egy modult, hogy felülírja a beállításokat egy másik modul, a modul alacsonyabbnak kell lennie a listán.

Az utolsó fontos, és még nem vették figyelembe könyvtár olyan könyvtár modulokat. Ez a könyvtár lesz modulok által kifejlesztett minket a kérelmet. Együtt ZendSkeletonApplication jön egy modult az alkalmazás, de mielőtt tanulmányozza annak szerkezetét, nézzük megérteni, hogy az ilyen ServiceManager és miért van szükség rá.

ServiceManager

A regisztrált vállalkozások ServisMenedzhere vagy module.config.php default.conf konfigurációs fájl service_manager szakasz vagy Module.php a getServiceConfig () metódus, ez így néz ki (például másolt a dokumentációt):

A fenti konfiguráció ServisMenedzhera bármelyik vezérlő, akkor most hívja a kódot, mint például:

és a $ user_form objektum tartalmazza a megfelelő formában.

Most itt az ideje, hogy visszatérjen a modul bejelentés belépő ZendSkeletonApplication.

alkalmazási modul

Könyvtárfa ez a modul az alábbiak szerint:

Kezdjük Module.php. Ez a fájl mondja az osztály modul 3 módszer:

Kód onBootstrap () metódust ez a modul felelős a Segment típusú szolgáltatás útvonal (utak típusok alább).

getAutoloaderConfig () metódus megadja a kernel keretet, hol található a forráskód a modul:

A jelenlegi esetben a könyvtár modulok / Application / src / Application.

A getConfig () metódus visszaadja az elérési utat a modul beállításai:

Ez a fájl vissza egy tömbben beállítások a következő adatokat tartalmazza:

  • tömbelem router - tartalmazó fájl listáját által kiszolgált útvonalakon a modul és a listát a vezérlők az egyes útvonalakat.
  • view_manager tartalmazza az elérési utat a sablonokat, hogy fogja használni az alkalmazást, és számos további beállításait egy sablont.
  • service_manager - objektumok listáját, amelyeket meg kell inicializálni ServisMenedzherom.
  • Számos egyéb beállításokat.

két útvonal meghatározása a bejelentés modul beállításai:

Alkalmazás modulnak egyetlen vezérlő IndexController () egyetlen ekshenom indexAction (), amely visszaadja a üdvözlő oldal címére. Az oldal megjelenítéséhez sablonokat használnak, amelyek tekintettel a modul könyvtár.

Ezen a ponton szeretném befejezni az első része a cikket. A második és a harmadik mi zaymomsya fejlődő kis modult, és csatlakozzon a rendszer néhány külső.

Kapcsolódó cikkek