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., 11:20-kor történt szerkesztése után volt.
Ugrás a navigációhoz Ugrás a kereséshez

A Yii keretrendszer számos olyan beépített osztályt tartalmaz, melyek a gyakori kódolási feladatokat segítik egyszerűen megvalósítani. Ilyen feladatok lehetnek például a szöveg vagy a tömb manipulációk, HTML kód generálás. Ezen osztályok statikusak és a yii\helpers namespace alatt találhatóak.

Lehetőségünk van felülírni az osztályokat ilyenkor a felülírni kívánt osztály szülő osztályát a base osztályt kell származtatnunk, majd elvégezni a megfelelő módosításokat. A Yii class autoloader segítségével pedig beállíthatjuk alapértelmezettnek a módosított osztályunkat. Ha nem változtatást, hanem hozzáadni szeretnénk funkciókat akkor pedig érdemes saját helper osztályt létrehozni.

ArrayHelper osztály

A tömbök hatékonyabb kezelésében képes segíteni, statikus metódusai segítségével.

Tömbkezelő ArrayHelper metódusok

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.

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.

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.

filter() metódus

Képes érték alapján szűrni, majd visszatérésként, csak az adott szűrési feltételnek megfelelő elemek lesznek benne(tömb esetében a benne lévő összes érték megmarad).

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.

map() metódus
A metódus segítségével $kulcs => $érték párokat hozhatunk létre. Lehetőség van továbbá a csoportosításra is. A visszatérési érték az említett párokat tartalmazó asszociatív tömb.

multisort() metódus
A többdimenziós tömbök sorba rendezésére szolgál. Történhet egy vagy több kulcs alapján is. A rendezés iránya (csökkenő / növekvő sorrend) is megadható. Void metódus nincs visszatérési értéke, a megadott tömbön végzi el a sorba rendezést.

merge() metódus
Két tömb összefésülését képes elvégezni. Az összefésülés logikája nyomán hatékonyan tudjuk alkalmazni különböző helyzetekben. A visszatérési érték az összefésült tömb lesz.

toArray() metódus
Az objektumok tömbbé való átalakítását valósítja meg. Így például az activerecord modellek az átalakítást követően, egyszerűen használhatóak REST API végpontok kiépítéséhez. A visszatérési érték a tömbbé alakított objektum lesz.

Boolean típusú ArrayHelper metódusok

keyExist() 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).

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.

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.

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

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.

StringHelper Osztály

A szöveg típusú változókkal való műveletek elvégzésében segít. A legtöbb metódus csökkentett funkcióval ugyan, de megtalálható a php saját függvényei között is.

byteLength() metódus

Vissza adja a megadott szövegben szereplő bájtok számát (a karakterek számát). Php megfelelője: strlen.

byteSubstr() metódus

A szövegből egy megadott hosszúságú "rész"-szöveget ad vissza. Php megfelelője: substr.
StringHelper::byteSubstr(’hello my friend’, 5, 10); => ’my friend’

countWords() metódus

A szövegben szereplő szavak számát adja vissza. Php megfelelője: str_word_count.

startsWith() metódus

Megvizsgálja, hogy a szöveg a megadott karakterekkel kezdődik-e vagy sem. Harmadik paraméterében opcionálisan megadható, hogy caseSensitive vizsgálatot végezzen-e. CaseSensitive opció nélküli megfelelője a php8-ban: str_starts_with.

endsWith() metódus

Megvizsgálja, hogy a szöveg a megadott karakterekkel végződik-e vagy sem. Harmadik paraméterében opcionálisan megadható, hogy caseSensitive vizsgálatot végezzen-e. CaseSensitive opció nélküli megfelelője a php8-ban: str_ends_with.

truncate() metódus

A szöveget a megadott karakterek száma után csonkítja, majd utána illeszti a megadott értéket.
StringHelper::truncate(’hello my friend’, 5, ’…’); => ’hello...’

truncateWords() metódus

A szöveget a megadott szavak száma után csonkítja, majd utána illeszti a megadott értéket.
StringHelper::truncateWords(’hello my friend’, 2, ’…’); => ’hello my...’

explode() metódus

A megadott "delimeter" szeparátor segítségével képes a szöveget feldarabolni, majd tömbként visszaadni. Első paraméter a szöveg, második a delimeter, harmadik opcionálisan megadható, hogy a whitespace-eket szűrje-e ki. Negyedik paraméterben opcionálisan megadható, hogy az üres elemeket távolítsa-e el a visszatérő tömbből. Mindkettő opcionális alapértelmezetten false.

Explode példa.png

matchWildcard() metódus

Lehetőségünk van a szövegben wildcard-ok felhasználásával minta alapján boolean vizsgálatot végezni. Harmadik paraméterben megadható, hogy legyen-e caseSensitive a vizsgálat.

Wildcard.png