DooPHP gyakorlati példaalkalmazás

A sors úgy hozta, hogy gyorsan létre kellett hoznom egy nagyvonalú specifikáció alapján egy kisalkalmazást egy multinacionális cég részére. Segítségével az excel táblázatba gyűjtött kimutatásokat tudják egyszerűsíteni. A megvalósításnál a DooPHP framework -öt alkalmaztam. Amikor gyorsan kell létrehoznom kisméretű dolgokat általában ezt a keretrendszert hívom segítségül, mert egyszerű és hatékony. Az itt megvalósított alkalmazás bármikor módosítható és rugalmasan testre szabható, kiegészíthető egyéb igényekkel. Amennyiben a kedves olvasónak szüksége van rá, szivesen adok egy egyedi ajánlatot.

login
Az előzetes specifikáció alapján háromféle jogosultsági szint érhető el. Látogató akinek csak olvasási joga van, mindent lát, Osztály szintű felhasználó, aki a saját osztályához tatozó adatokat tudja  csak módosítani illetve a super user, aki bármit módosíthat. Így lehetősége van új felhasználókat felvenni, jogosultságokat kiosztani, inaktívvá tenni a felhasználókat, osztályokat módosítani újakat felvenni. Sikeres bejelentkezés után a következő képen látható lehetőségek közül választhatunk:
A userek karbantartását a user menüpontra kattintva a következőképpen tudjuk megtenni. A listában szereplő egy vagy több usert kiválasztva törölhetjük a listából vagy megfelelő jogosultsággal szerkeszthetjük, illetve újat vehetünk fel.
Új felhasználó felvételéhez a következő adatokat tudjuk megadni:
Az osztályok karbantartására a departments menüpontra kattintva nyílik lehetőség:
A projectek menüpontban két lehetőség közül választhatunk:
A set project data -ban tudjuk létrehozni a projectet és hozzájuk rendelni a költségcsökkentési terveket. Itt a könnyű kezelhetőség miatt lehetőségünk van év szerint szűrni illetve azokat a projekteket listázni, ahol egyáltalán nem adtak meg még adatokat. Itt a bejelentkező felhasználó osztályához tartozó projektek jelennek meg csak.
A költségek rögzítése az adott év adott hónapjához és heteihez van rendelve. Lehetőség nyílik egyenként a hónapok felvitelére és rögzítésére.
A vezetőség számára lehetőség nyílik a felvitt adatokról egy gyors kimutatást is készíteni, ahol az év kiválasztása után a listában szerepelnek az osztályok és az összes hónap a rá vonatkozó heti adatokkal. A lista kimeneti formátuma lehet html és xml így utólag bármilyen módosítás könnyen megvalósítható illetve tetszőleges kimeneti formátum előállítható, exportálható.
Felhasznált eszközök:
Az adatbázis tervet és így az adatbázist a MySqlWorkBanch segítségével hoztam létre. A fejlesztéshez a ZendStudio 8.0 -át használtam, mivel most kezdtem az ismerkedést vele és amúgy is rendelkeztem érvényes licensszel, amit a Zend biztosított számomra. A szerver oldalon PHP 5.3-at, MySql5 adatbázist és a DooPHP keretrendszert. A kliens oldalon a Jquery javascript keretrendszert, a végső kimenet ellenőrzéséhez pedig a Firefox és Google Chrome böngészőket, illetve az Ubuntu GNU/Linux disztribúciót használtam.
Az alkalmazás osztálydiagramján nem kerültek részletezésre olyan osztályok, amelyek a keretrendszer részei, illetve az áttekinthetőség miatt bizonyos kapcsolati viszonyok nem kerültek feltüntetésre, ezért nem teljes értékű. Pl: a UserController osztály használja a User modell osztályt és a User View osztályt és ez érvényes a többire is.
A DooPHP előnyei, amit kihasználtam:
  • szigorúan megvalósított MVC szemlélet (utólagos igények bárki által implementálhatóak, újrahasznosíthatóak egyes részek)
  • a beépített Access Control List segítségével megoldott jogosultság kezelés, amit utólag rugalmasan lehet változtatni, jogokat elvenni és hozzáadni az egyes műveletekhez
  • többnyelvűsítés teljes körü segítése, (utólag minimális munka árán bármilyen nyelven megvalósítható a kimenet)
  • adatbázis ORM (jóllehet kézzel szükséges a mapping és a kapcsolatok leírása), a modelt a már létező adatbázisból generálja a keretrendszer
  • smarty szerű template nyelv (csak egyszerűbb)
  • az egyes osztályokat részletesen leíró online API és dokumentáció
  • online támogatás

Hátrányok:

A nehézséget számomra az ORM rész okozta, mert nem ismertem a generálás és a használat folyamatát. Az input Validator nem úgy működik ahogyan elképzelem. Ezek mind abból fakadnak, hogy nem volt elég időm megismerni a lehetőségeket és menet közben értek meglepetések. Ezeket leszámítva úgy gondolom, hogy a rapid fejlesztést és egységes kezelést tesz lehetővé. Segítségével minőségi termék készíthető.

Kövekeztetés:

Sajnos sokan vannak akik, azt állítják minek túlbonyolítani az egészet. Az állításukat elfogadom. A program szinten történt általánosítás valóban nehezebbé és látszólag első benyomásra “bonyolultabbá” teszi a működést. Jogosan mondhatjuk, hogy minek MVC minta, minek könyvtárakra bontani mindent, minek osztályokban gondolkodni. Ez az amiért a PHP -t sokan szeretik. Gyorsan lehet “összehányni” egy látszólag jól működö megoldást. Mi történik akkor, ha utólag kell módosítani az egészen ráadásul egy olyan embernek akinek köze nem volt a megvalósításhoz? Akkor feltehetőleg csöndbe maradnak azok az emberek, akik az előzőleg felhozott érveket említik. Melyik a költséghatékonyabb? Ezt a kedves olvasó és a megrendelő döntse el magában.

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.

2Hozzászólások

  1. Kovács Zsolt
    Posted 2012 March 12 at 18:51 | Permalink

    Remek bejegyzés… Magam most ismerkedem a DooPHP-val, elsősorban a teljesítménye fogott meg. Kíváncsi vagyok mennyire fog elterjedni Magyarországon.
    Gratulálok…

  2. admin
    Posted 2012 March 12 at 19:28 | Permalink

    Kedves Zsolt !
    Köszönöm!
    Ha elakadnál és segítségre van szükséged, írj nyugodtan! :-)
    Üdv:
    István

Szólj hozzá

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