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