A címben szereplő nevet adtam annak az osztálynak, mely a könyebb fejlesztés miatt született.
Az ExtJS viszonylag komplex objektumokat használ, melyeknek számtalan konfigurációs paraméterezési lehetősége van. Egy általános keretrendszer azonban az alapértelmezett értékekkel (PHP oldalon) tökéletesen működhet, és finomítani a beállításokat ráér azokban az esetekben amikor szükséges. Emiatt készült egy jópár osztály-metódus, amelyik paraméterként csak a legfontosab változókat kéri. De akkor mi van a finombeállításokkal? Az első változatban egy változóval kiegészült az argumentumlista, melyben mint asszociatív tömbben, bármilyen adat átadható a metódusnak. Így a tömbkulcsok - változóval való megfeleltetése a függvényen belül már tetszőlegesen megoldható.
És itt jön az EasyParameter. Nem tömb kerül átadásra, hanem egy objektum. Ennek vannak paraméterei. Az elv ugyanaz, de a fejlesztés könyebb. A metódusban megadható, hogy melyik leszármazottat várja a program, és fejlesztés közben a kódkiegészítés már kijelzi, hogy az objektum milyen paraméterekkel rendelkezhet - szemben az asszociatív tömbbel, amelyik erre nem képes. Plusz még egyszerűbben dokumentálható.
/** * Absztrakt alaposztály */ abstarct class EasyParameter { } /** * Konkrét kiterjesztése egy paraméterosztálynak * a szükséges változókkal */ class EasyParameter_ForSample extends EasyParameter { public $piri; public $para; } /** * Valamely ExtJS objetkumot felépítő gyorsosztály */ class MyClass { /** * Metódus, mely már a konkrét paraméterosztályt várja * * Legyen például a metódus egy grid megjelenítő * a két fontos változó pedig a div amelyikbe a grid kerül * és az url ahonnan az adatot fogja az ajax bekérni * * és itt jön a tetszőleges utolsó paraméter * melyben megadható bármely egyéb adat: * magasság, szélesség, szín, szag, stb. */ public function myMethod ($important_1, $important_2, EasyParameter_ForSampe $parameterObject = null) { // itt jön a kód, mely már könnyedén használja // a paraméterosztályt } }
A fentiekhez hasonló elven működik az ExtJS-ben a configObject.
{title: "cím", height:35}. Úgyhogy nem is spanyolviasz.
Utolsó kommentek