Yii Helpers

Innen: Szitár-Net Wiki
A lap korábbi változatát látod, amilyen Szűcs Gábor (vitalap | szerkesztései) 2021. augusztus 26., 08:44-kor történt szerkesztése után volt.
Ugrás a navigációhoz Ugrás a kereséshez

I. ArrayHelper osztály

getValue() metódus

Vizsgálja, hogy egy tömb vagy objektum bizonyos kulcsa létezik-e, ha igen akkor a meghatározott kulcs értékét adja vissza, ha nem létezik akkor pedig egy előre meghatározott értéket ad vissza.

ArrayHelper::getValue($tomb, ’kulcs’, ’Nem található a kulcs’);

A első paraméter a tömb. A második paraméter a kulcs:

  • A tömb kulcsa vagy az objektum attribútuma
  • Ha több dimenziós a tömbünk akkor pontokkal szeparált kulcsok vagy attribútumok megadásával is megkaphatjuk a kívánt értéket pl., ha [’tömb1’][’tömb2’][’értékKulcsa’] akkor ’tömb1.tömb2.értékKulcsa’
  • Callback függvény visszatérése által tudjuk manipulálni a kívánt adatokat

A metódus harmadik paramétere opcionális, ha nem található meg a megadott kulcs a tömbben, akkor ez a harmadik paraméter lesz a metódus visszatérési értéke, alapértelmezetten ez null.

setValue() metódus

Vizsgálja, hogy egy tömb, illetve a megadott kulcs létezik-e, ha létezik akkor annak az értékét felülírja, ha nem létezik akkor pedig létrehozza akár még a tömböt is és a megfelelő kulcsokat és az értéket.

ArrayHelper::setValue($tomb, ’kulcs.ertek3’, ’Ertek’);

Az első paraméter a tömb, a második a kulcs, pontokkal szeparált kulcsok megadásával is megadhatjuk pl., ha [’tömb1’][’tömb2’][’értékKulcsa’] akkor ’tömb1.tömb2.értékKulcsa’. A harmadik paraméter lesz az értéke a megadott kulcsnak.

remove() metódus

Eltávolítja a tömb megadott kulcsát és annak értékét. Visszatérési értékébe az eltávolított elem értéke kerül, ha nem létezik akkor pedig a harmadik paraméterben opcionálisan meghatározott érték fog visszatérni, alapértelmezetten ez a null.

ArrayHelper::remove($tomb, ’kulcs’, ’Nem található a kulcs’);

Fontos megemlíteni, hogy itt nem használható a pont szeparátorral megadott kulcsok meghatározása. Csak az egyszerű string formátumú kulcs engedélyezett. Ez sajnos behatárolja a metódus hatékonyságát / felhasználhatóságát.

index() metódus

Több dimenziós tömb elemeit képes kulcs alapján indexelni, és megadott attribútum szerint csoportba rendezni. Visszatérési értéke az indexelt tömb lesz.

ArrayHelper::index($tomb, ’id’, ’name’);

Első paraméter a tömb, második az egyedi kulcs, mely alapján az egyedi indexelés fog megvalósulni, például id alapján. Harmadik paraméternek azt az attribútumot / attribútumokat várja mely alapján csoportokat fog tudni létrehozni (használhatunk callback függvényt is). Ha a fenti kód alapján id indexelés és name csoportosítás történik egy tömbön akkor:

’Fred’ => [
	1 => [’id’ => 1, ’name’ => ’Fred’, ’type’ => 220]
],
’Fredddy’ => [
	3 => [’id’ => 3, ’name’ => ’Fredddy’ , ’type’ => 30],
	4 => [’id’ => 4, ’name’ => ’Fredddy’ , ’type’ => 220],
        5 => [’id’ => 5, ’name’ => ’Fredddy’ , ’type’ => 30]
]

Továbbá lehetőségünk van a harmadik paraméterben tömbként átadott értékkel többszörös csoportosításra is, a sorrend a tömbösítés sorrendjét is meghatározza. Ha a harmadik paraméter [’type’, ’name’] akkor:

220 => [
    ’Fred’ => [
	  1 => [’id’ => 1, ’name’ => ’Fred’, ’type’ => 220]
    ],
    ’Fredddy’ => [
	  4 => [’id’ => 4, ’name’ => ’Fredddy’ , ’type’ => 220]
    ]
],
30 => [
    ’Fredddy’ => [
          3 => [’id’ => 3, ’name’ => ’Fredddy’ , ’type’ => 30],
          5 => [’id’ => 5, ’name’ => ’Fredddy’ , ’type’ => 30]
    ],
]



Boolean típusú metódusok

keyExists() metódus

Vizsgálja, hogy a meghatározott kulcs létezik-e a megadott tömbben. Visszatérési értéke pedig egy boolean lesz (true – létezik, false – nem létezik).

ArrayHelper::keyExists(’kulcs’, $tomb, false);

Első paraméter a kulcs, második a tömb. A harmadik paraméter opcionális és ezzel a caseSensitive vizsgálatot lehet felfüggeszteni, alapértelmezetten caseSensitive = true, tehát a kis és nagybetűknek is egyeznie kell.

isIndexed() metódus

Vizsgálja, hogy a megadott tömb számokkal van-e indexelve, azt is lehetőségünk van vizsgálni, hogy a számok egymást követőek-e, folytatólagosak. Boolean értéket ad vissza.

ArrayHelper::isIndexed($tomb, true);

Az első paraméter a tömb, a második pedig opcionális és itt megadható, hogy vizsgálja-e a folytatólagosságot, ha true akkor az indexelésnek 0-tól kell kezdődnie és nem lehet kimaradás a számok között. A második paraméter alapértelmezett értéke a false.

isAssociative() metódus

Vizsgálja, hogy a megadott tömb asszociatív-e. Azt is lehetőségünk van vizsgálni, hogy a megadott asszociációs kulcsok mind string formátumúak-e. Boolean értéket ad vissza.

ArrayHelper::isAssociative($tomb, true);

Az első paraméter a tömböt, a második pedig opcionális és itt megadható, hogy kell-e vizsgálni az asszociációs kulcs formátumát, ha true akkor csak szöveg formátumok esetén ad igaz értéket (a ’122’ nem számít szöveg formátumnak a ’12w2’ már igen). A második paraméter alapértelmezett értéke a true.

isIn() metódus

Vizsgálja, hogy egy adott érték benne van-e a tömbben. Visszatérési értéke egy boolean.

ArrayHelper::isIn(’3’, $tomb);

Első paraméter a vizsgálni kívánt értéket várja, a második pedig a tömböt. Van egy harmadik paraméter mely opcionális, ha „true” értéket adunk neki akkor a típus szerinti egyenlőséget is vizsgálja, alapértelmezetten „false” az érték.

isSubset() metódus

Vizsgálja, hogy a megadott elemek megtalálhatóak-e a vizsgálandó tömbben. Visszatérési értéke egy boolean.

ArrayHelper::isSubset([a,c],[a,b,c]);

Az első paraméterben azokat az elemeket kell tömb formájában megadni melyeket szeretnénk, hogy a metódus megkeressen a vizsgálandó tömbben. Fontos, hogy minden elemnek benne kell lennie a vizsgálandó tömbben, csak így ad vissza „true” értéket. A második paraméterben a vizsgálandó tömböt kell megadnunk. A harmadik paraméter opcionális és a típus szerinti összehasonlítást teszi lehetővé, ugyanúgy, mint az előbbi metódus esetében.