Elkezdődött a kódolás!

Ez a post már egy nagyjából hónapos tartozásom. Szóval amint a cím is mutatja, a rendszer fejlesztése a programkódok írásának fázisához ért. A tervezés legutóbbi szakaszában a rendszer legfontosabb struktúráit, a könyvtárak felépítését és az alapvető szolgáltatásokat nyújtó osztályokét kiviteleztük - ez zárult most le. Ezt követte az UML-ből generált kódcsontváz kozmetikázása, amelyet hamarosan követni fog az apránkénti kódfeltöltés. A rendszer jelenleg 38 osztályt tartalmaz, ezek közt 3 rootclass található (egy SimpleXML miatt szükséges, egy adatszerkezeti osztály és egy rendes ősosztály).

A tervezett alapvető rendszer-szolgáltatások röviden összefoglalva:

  • Egységes adatstruktúra kezelés (Record osztályokon keresztül)
  • Egységes, ultra-flexibilis adatkommunikáció (rugalmasan egymáshoz rendelhető Stream és Converter osztályokkal)
  • Eseménykezelési lehetőségek (N:N típusú esemény-objektum kapcsolat, priorizálható eseménykezelők, eseménykezelés felfüggeszthetőség, ignorálási lehetőség, eseménylánc megszakításának lehetősége visszatéréstől függően)
  • Egységes, fájlrendszeren alapuló konfiguráció-kezelés (hasonlóan a legelterjedtebb asztali OS registry-jéhez, nincs terjengős központi konfigurációs állomány, hanem szervezett könyvtárstruktúrába rendezett konfigurációs egységek)
  • Alapvető fejlesztési szakaszok primitív támogatása (lokális, kitöltött tesztmód, kitöltött élesmód)
  • Rugalmas komponensbővíthetőség bővítményosztályok támogatásával
  • Komponenscsontvázkód generálásának támogatása (saját fejlesztésű, a YML-hez hasonlító modellező nyelv segítségével)
  • PHP 5 OO alapeszközök bővítése komponensek esetén (property getter és setter metódusok kultúrált megvalósítása rendszerszinten)
  • XML alapú, komponens-orientált szerveroldali sablonozás (az egyes XML elemek komponenseket reprezentálhatnak, amelyeknek meghatározott tulajdonságai és metódusai elérhetőek PHP-ből. A sablon nem a megjelenítést, hanem a grafikai tervek gyors implementálását és annak vezérlését lett hivatott megkönnyíteni, programozói eszközöket nem ismer, a vezérlést teljes egészében a vezérlő PHP kódra hagyja - így a sitebuilder és a fejlesztő is a saját munkájára tud összpontosítani egymástól akár függetlenül is)
  • Alkalmazás-orientált, multisite-képes rendszerkörnyezet
  • Testhez idomítható, önmagát azonosító könyvtárszerkezet (a rendszer könyvtárait leírók azonosítják a rendszer számára, a könyvtár szerepe tehát nem a könyvtár helyétől és nevétől függ, így könnyebb idomítani a változatos tárhelyszolgáltatói struktúrákhoz)

Továbblépés a fejlesztésben, a fejlesztés ezen szakaszának lezárulta után:

  • Standard ki- és bemeneti csatornák (stdin, stdout, stderr) stream implementációja
  • Munkafolyamati adatfolyam osztály kialakítása
  • Gyorsítótárazási technológiák implementálása
  • Standard osztályok bevezetése a csomóponti adatmodellek támogatására
  • Standard statikus komponensek tervezése, kivitelezése
  • Dinamikus komponensek: ExtJS 2.0 keretrendszer integrálása
  • Telepítő alkalmazás kivitelezése