Kiemelt kép

Laravel 7 - Fluent String műveletek (Str::of / Stringable)

A Laravel 7 főverzióval egy hiánypótló lehetőség került a keretrendszerbe, amire korábban maximum külső könyvtárak segítségével volt lehetőségünk. Ez nem más, mint az ún. „Fluent String” műveletek, ami magyarra lefordítva annyit jelent, hogy mostantól az Str::of method segítségével láncolható módon tudunk mindenféle karakterláncokkal kapcsolatos műveletet végrehajtani.

A PHP az elmúlt években nagyon sokat fejlődött, de sajnos még mindig nincs semmilyen objektum orientált megoldás a primitív típusokkal való műveletekre. Tömbökkel kapcsolatban nagyon sok előrelépés volt, de még mindig függvényekkel csinálunk szinte mindent. A Laravel mindig is egy modernebb felfogással rendelkezett, van Collection, ami a natív tömbök fluent verziója számtalan remek funkcióval. Illetve a Laravel 5.8 óta a beépített str_ és array_ prefixű segéd függvények helyett az Str és Arr nevű statikus osztályokat tudjuk használni, ami szintén az OOP szemléletet erősíti.

Most pedig a már létező Str osztály bővült egy Str::of($string) metódussal, ami egy Illuminate\Support\Stringable osztályt példányosít és utána ezen láncoltan tudjuk meghívni a jól ismert Str statikus metódusait, illetve az alapvető PHP sztringfüggvényeket.

Nézzünk néhány példát!

A példákon keresztül megfigyelhető, hogy ha egy tovább láncolható (Stringable visszatérési értékkel rendelkező) metódusból az eredményt akarjuk kinyerni, akkor egy típuskonverziót kell végrehajtani. A funkciók listáját a hivatalos Laravel dokumentációban vagy a Stringable osztály kódját átfutva lehet megtekinteni. A tömbökkel kapcsolatos műveleteknél, pl. explode esetén alapvetően mindig Collection-t kapunk vissza, de ha natív tömb kell, akkor azon még hívni kell toArray()-t. 

Ha egyébként Str::of nélkül szeretnénk példányosítani a Stringable-t, arra is van lehetőség természetesen.

Ha hasznos volt ez a cikk, kérlek oszd meg másokkal is. Köszönöm!

Laravel logo © Taylor Otwell


Ha nem szeretnél lemaradni a hasonló posztokról, kövesd a blog Facebook oldalát!