A DooPhp Framework lehetőségei 1. rész

Egy külföldi php magazin 2009 júliusában egy hírt tett közzé miszerint egy új keretrendszer látott napvilágot DooPHP néven. Ebben a cikkben úgy számoltak be róla, mint a legjobb teljesítménnyel rendelkező keretrendszer az összes elérhető közül. Igaz, hogy eddig nem végeztem a teljesítményre vonatkozó méréseket, ezért erről nem tudok meggyőző információkról beszámolni, elhiszem amit állítanak. Bár érdekes lenne utánajárni a dolognak de ezt majd egy másik alkalommal teszem meg.

Elsősorban a kíváncsiság vezérelt és az, hogy egy friss, ropogós újdonsággal ismerkedhetek meg. A készítője Leng Sheng Hong az egyszerűséget és az átláthatóságot tűzte ki célul. Nem véletlen az elnevezés sem: Do Object Oriented Php.

Mivel a keretrendszerhez rendelkezésre álló dokumentáció bogarászós és főképp a hozzá tartozó forráskódból, példaprogramokból lehet hasznos információkat szerezni, ezért elhatároztam, hogy magyarul elérhetővé teszem azt, amivel én az MVC  Php példaalkalmazásom elkészítése során találkoztam és felhasználtam. Ha valaki esetleg kedvet kap hozzá, így nem kell végigrágnia magát rajta vagy ez alapján eldöntheti, hogy szeretné-e jobban megismerni a keretrendszert a saját fejlesztéseihez.

Véleményem szerint a jó teljesítményt nem csak a keretrendszer felépítése határozza meg, hanem a rá írt programok felépítése, szerkezete is. Na akkor ennyi bevezető után csapjunk bele:

Letöltés és kicsomagolás után a fájl tartalmazza magát a DooPHP keretrendszert és a példaprogramokat (1.9 Mbyte tömörítve). A következő kép a /app mappa felépítését mutatja, amivel egy szinten van a /dooframework, ami magát a keretrendszert tartalmazza.

A következő tulajdonságokkal rendelkezik:

  • MVC felépítésű, ez úgy gondolom alapkövetelmény, ha nem akarunk gányolni és a saját életünket megkeseríteni
  • A PHP5 re épül. Ez azért is fontos, mert valóban tisztán objektumorientált elveket használ és valjuk be, hogy a régebbi programok és egyes keretrendszerek van amikor nem tudnak elszakadni a PHP4 -es örökségtől.
  • URI alapján határozza meg melyik Controller melyik action -je kerüljön végrehajtásra. Ez a Java Struts keretrendszerre hasonlít, ahol egy xml fájlban írtuk le, hogy mi történjen. Ez szimpatikus. Az alkalmazás vezérlése így teljesen tiszta és áttekinthető és ne felejtsük el, hogy a módosíthatóság és tervezés szempontjából ez KULCSfontosságú!
  • beépített jogosultság ellenőrzéssel rendelkezik, amit egyszerűen ACL (Access Controll List) -nek nevez
  • adatbázis replikáció
  • adat átmeneti tároló
  • frontend átmeneti tároló
  • kód generálás
  • I18n, nemzetközi használat segítése
  • központi konfigurálási lehetőség
  • RESTful API
  • DB ORM
  • Rugalmas Template rendszer
  • Naplózás és finomhangolási lehetőség
  • Széleskörű alkalmazhatóság, külön speciális PHP környezeti beállítások nem szükségesek
  • Ajax barát
  • Warning és Error üzenet mentes, felkészült a PHP jövőbeni változataira is

Az egyes tulajdonságokat és lehetőségeket a későbbiekben részletesen ki fogom fejteni, most lássuk hogyan is épül fel egy egyszerű webalkalmazás.

Kezdő alapbeállítások

- common.conf.php

A protected/config/common.conf.php file ban található. Itt számos alapbeállítás megtalálható.(host url, időzóna, log path, debug mód stb..) A saját alkalmazásinkra vonatkozó beállításokat is itt helyezhetünk el. Egy singleton mintán keresztül tudjuk elérni ezeket. (Doo::conf()->BASE_PATH)
Itt a DooPHP konvenciója szerint az asszociatív tömbben a kulcsot nagybetűvel írják, ha a keretrendszer változóiról van szó és kisbetűvel ha saját változókat használunk. Ezt fontos betartanunk.

- routes.conf.php

Itt lehet beállítani egy tömbben a lekéréskor használt URL-t, a hozzá tartozó osztályt és a megfelelő action-t.

A tömb felépítése:

$route[A kérés metódusa][URI] = array(Controller osztály, metódus, egyéb opciók)

pl:

1 $route['*']['/'] = array(MainController, index);
2 $route['post']['/login'] = array(MainController,login);
3

Az index.php fájlban beállítjuk az alkalmazásunkra vonatkozó információt, vagyis a keretrendszer által használt fájlokat. Ezek egy egyszerű alkalmazás esetében a következőek:

 1 <?php
 2 include './protected/config/common.conf.php';
 3 include './protected/config/routes.conf.php';
 4 include $config['BASE_PATH'].'Doo.php';
 5 include $config['BASE_PATH'].'app/DooConfig.php';
 6 
 7 Doo::conf()->set($config);
 8 Doo::app()->route = $route;
 9 Doo::app()->run();
10 ?>

Miről is van szó?

A DooConfig osztály betölti a common.conf.php ban definiált értékeket.  A Doo egy singleton osztály, ami a keretrendszer alapvető funkcióit szolgáltatja. Rajta keresztül lehet elérni az adatbázis kapcsolatokat, beállításokat, loggolást stb… A conf metódussal egy Config objektum példányt hoz létre és betölti a config fájlban beállított értékeket. A Doo app metódusa létrehoz a DooWebApp osztályból egy példányt. Beállítja az osztály route publikus változóját, amit a route configban megadtunk.  A run metódus kezeli és feldolgozza ezeket a routing információkat és hiba esetén megfelelő header információval tér vissza, ami egy igen SEO barát megoldás.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter


A bejegyzés kategóriája:DooPhp and tagged . Vedd fel a kedvencek közé: link. Szólj hozzá vagy hagyj egy trackback-et:Trackback URL.

3Hozzászólások

  1. Posted 2010 September 13 at 10:39 | Permalink

    Hali,

    Nagyon köszi a bemutatást… mióta olvastam a cikket ezt használom!
    Egyszerű és gyors keretrendszer…. nagyon könnyű megtanulni!

    Üdv

  2. Posted 2010 September 13 at 20:15 | Permalink

    Örülök, hogy tudtam valami hasznosat adni. Egyébként valóban, sokszor felesleges verébre ágyúval lőni és ilyenkor jól jön a DooPhp. Sok sikert hozzá !

  3. Posted 2011 November 25 at 13:35 | Permalink

    Nagyon kezdő vagyok a témában, egy komplett tutorial tudál ajánlani!
    (esetleg bemutatni)

Szólj hozzá

Hozzászólás küldéséhez Be kell jelentkezni