Fejlesztőknek
Ezen az oldalon röviden bemutatjuk a fejlesztőrendszert. Megismerhetik a cPEED több rétegű, moduláris szerkezetét, az egyes rétegek szerepét, a felhasznált szabványokat, valamint az újrahasznosítható cPEED Instant Module rendszert.
A keretrendszerről
A korszerű és jó minőségű webalkalmazások struktúráját meg kell tervezni. Kiindulásként a hagyományos üzleti alkalmazások világából ismert struktúrák és ötletek alkalmazhatóak, azonban figyelembe kell venni a web felépítéséből és az elterjedt technológiák korlátaiból adódó feltételeket. Az architektúra megtervezésénél a fejlesztői szerepkörök szétválasztása és az alkalmazás többnyelvű környezetben való felhasználása kitüntetett szerepet kell kapjon.
A keretrendszernek magasabb szinten meg kell felelni a kód nagyobb mennyiségéből következően nem egyszerű átláthatóság biztosításának, az alkalmazás vagy részei újrafelhasználásának, illetve az új környezetre való egyszerű konfigurálhatóság követelményeinek. Alacsonyabb szinten technológiai problémákat kell áthidalnia. A lényegesebbek: a kód és megjelenítés szétválasztása, az üzleti logika funkcionális egységeinek elkülönítése, a munkamenetek folyamatának biztosítása, a felhasználók azonosításának, bejelentkezési folyamatának egységesítése, jogosultságaik kezelése, az űrlapkezelés egyszerűvé tétele, az adatbázis-alapú információkezelés folyamatának szabványosítása és gyorsítása, fájl erőforrások és meta-adataik kezelésének egyszerűsítése.
A kódgenerátor elsődleges feladata a fejlesztés felgyorsítása az ismétlődő feladatok elvégzésével, valamint a keretrendszer használatából adódó többletfeladatok átvállalása. Ez magában hordja az alkalmazás előkészítésének, a keretrendszer telepítésének feladatait, valamint a különböző típusú fájlok kiindulási vázának elkészítését is.
Az ismétlődő feladatokhoz tartozó (PHP- és HTML) kódot a fejlesztő által megadott paraméterek alapján állítja elő. A funkciók összefogását egy integrált fejlesztőrendszer végzi, amely jelen esetben a szerveren, önálló webalkalmazás formájában fut. A fontosabb feladatok: az adatbázist felhasználó üzleti logika függvényeinek előállítása, az adatok megjelenítéséhez tartozó összetett elemek (adatrácsok) elkészítése, nyelvfüggetlen szövegrészek beillesztése, űrlapok, űrlap-elemek felvitele, azok ellenőrzését, a felhasználó utasításait kezelő funkciók létrehozása és kezelése.
A megvalósításhoz választott szkriptnyelv a PHP, ami a szerverek jelentős részén megtalálható. Ezt a népszerűséget ingyenességének, egyszerű adminisztrálásának, könnyű megtanulhatóságának köszönheti. Emellett rengeteg modul, függvénykönyvtár áll a programozó rendelkezésére. Rendelkezik a szkriptnyelvek összes előnyével. A programkód nem kerül ki a szerverről, és kliens oldalon a böngészőn kívül nem igényel egyéb technológiát vagy erőforrást.
A webalkalmazás felépítése
A cPEED-re épülő webalkalmazások felépítése a jól ismert több rétegű modellt követi. Az architektúra fontos rész, mivel itt történik a fejlesztői szerepeknek (pl. fejlesztő, grafikus, HTML-designer, fordító stb.) megfelelő alkalmazás-részek szétválasztása. A megértéshez induljunk ki a kérés kiszolgálása során lejátszódó folyamatokból!
A HTTP protokollal lekért tulajdonképpeni oldalak az ábrán "PHP oldalak" néven szerepelnek. Ezen oldalakat kicsit nehéz meghatározni a hagyományos alkalmazások rétegei alapján, ugyanis szerepük leginkább közvetíteni a megjelenítés illetve az üzleti logika között, tehát a két réteg határán helyezkednek el. Ezért a megjelenítési logika névvel illetem őket. Ezeknek a PHP fájloknak jól meghatározott struktúrájuk van. A felhasználói oldalról érkező inputok (űrlapok, adattáblák) ellenőrzésén, a jogosultság-ellenőrzésen, illetve a nyelvfüggő elemek behelyettesítésén túl nem végeznek más tevékenységet, minthogy az elvárt funkcionalitáshoz a megfelelő modul valamely függvényét az aktuális paraméterekkel meghívják. Ezek a modulok kétfélék lehetnek: vagy a keretrendszerhez tartozó, általános, webalkalmazáshoz kötődő tevékenységet végző modul (ilyenek: session, language, log, forms, filebroker, stb.), vagy a konkrét alkalmazás üzleti logikáját megvalósító modulok. Ezek fájlok szintén PHP szkriptek, azonban nem kötődnek konkrét oldalakhoz. A modulok tartalma egy objektum, amelyek használatához az adott modul fájlját be kell illeszteni (require) az oldalhoz tartozó szkript fájlba. Az objektum függvényei egy-egy jól meghatározott funkcionalitást képviselnek. A modulok végezhetnek adatbázis-hozzáférést, vagy egyéb fájlokkal műveleteket. A modulok és adatbázis között az elterjedt ADODB adatbázis-függetlenségi réteg helyezkedik el.
Miután a webalkalmazás elvégezte a tennivalóit, valamilyen választ kell küldenie, méghozzá HTML nyelven. Minden PHP oldalhoz tartozik egy (néha több) HTML template fájl, amelyet a designer készít el, és a webalkalmazás válaszként visszaküld. Természetesen, mivel dinamikus weboldalakról van szó, a válasz nem lehet mindig ugyanaz az oldal. A template fájlokban speciális mezők vannak, amelyek helyére a dinamikus tartalom kerül az ún. template parser felhasználásával. A kódgenerátor alapvetően a kvázi-szabvány Smarty template rendszerrel működik együtt, azonban más parserekkel is összeköthető. A kimenet cache-elését szükség esetén az eAccelerator (korábban Turck MMCache) végzi.