Neural hírek logo

A korutinok világa PHP-ben

A "korutin" gyakran felmerül aszinkron vagy nem blokkoló kódokról szóló beszélgetésekben, de mit is jelent valójában? Ebben a cikkben megvizsgáljuk a korutinokat, mint koncepciót, és megnézzük, hogyan támogatja őket a PHP a Generátorok és a Fiberek segítségével. A korutinok olyan függvények, amelyek szüneteltethetik és folytathatják a végrehajtást, miközben megőrzik belső állapotukat. A PHP Generátorok (aszimmetrikus, stack nélküli) és Fiberek (aszimmetrikus, stack-es) segítségével támogatja a korutinokat, amelyek különböző feladatokhoz, például CLI eszközökhöz vagy aszinkron munkafolyamatokhoz használhatók. A korutinok hasznosak lehetnek állapotkezeléshez, lusta iterációhoz vagy akár együttműködő multitaskinghoz is. A következő részben pedig a gyakorlatban is megvizsgáljuk, hogyan alkalmazhatók a korutinok a PHP-ban, beleértve az eseményhurkokat és aszinkron könyvtárakat, mint a ReactPHP.

A korutinok olyan függvények, amelyek képesek felfüggeszteni és folytatni a végrehajtásukat, miközben megőrzik belső állapotukat. A PHP-ben a korutinok két fő formában jelennek meg: Generátorok és Fiberek. A Generátorok aszimmetrikus és stack nélküli korutinok, amelyek kiválóan alkalmasak iterációra és memória-hatékony adatfeldolgozásra. A Fiberek viszont stack-alapú korutinok, amelyek lehetővé teszik a felfüggesztést egymásba ágyazott függvényekből is, így bonyolultabb feladatokhoz, például együttműködő multitaskinghoz ideálisak.

A korutinok számos hasznos alkalmazási területtel rendelkeznek a PHP-ben. Például állapotkezelésre alkalmasak, mint CLI eszközök vagy chatbotok esetében, ahol a felhasználóval folytatott párbeszéd során megőrzik az állapotot. Emellett kiválóak lusta iterációhoz, ahol csak a szükséges adatokat generálják, ezzel memóriát takarítva meg. A legérdekesebb alkalmazásuk azonban az együttműködő multitasking, ahol több feladat váltakozva fut, és explicit módon adják át a vezérlést egymásnak. Ez különösen hatékony lehet nagy adatmennyiségek feldolgozásakor vagy aszinkron műveletek kezelésekor.

A Fiberek előnye, hogy lehetővé teszik a felfüggesztést egymásba ágyazott függvényekből, ami nagyobb rugalmasságot és tisztább kódstruktúrát eredményez. Azonban fontos megjegyezni, hogy sem a Generátorok, sem a Fiberek nem szimmetrikus korutinok – mindkettő csak a hívó kódnak adja vissza a vezérlést. A valós alkalmazásokban, például eseményhurkokkal (event loop) kombinálva, a korutinok hatékony eszközt nyújthatnak az aszinkron és nem blokkoló PHP alkalmazások fejlesztéséhez. A következő lépés a gyakorlati alkalmazásuk feltárása, például a Revolt vagy ReactPHP keretrendszerek segítségével.


Ez a cikk a Neural News AI (V1) verziójával készült.

Forrás: https://doeken.org/blog/coroutines-in-php.

A képet Mihai Cojocaru készítette, mely az Unsplash-on található.

Neural hírek

Bitcoin újra a 92.000 dollár felett áll, és a Bernstein elemzők szerint végleg túl vagyunk a mélyponton. Az intézményi befektetők növekvő érdeklődése és a tokenizációs
1 view
A CES 2026 sztárja: megérkezett a világ első ultrahangos konyhakése, ami 30 000 rezgés/másodperc mellett vág. A forradalmi eszközzel a paradicsom és a krumpli is
1 view
Mikor és hol nézheted a Leeds–Arsenal rangadót? A Premier League izgalmas mérkőzésére szombaton, reggel 10 órakor (keleti parti idő) kerül sor, az USA Network és
1 view
Már itt a 2026-os téli olimpia! A milánói és cortinai játékok február 6-án indulnak hivatalosan, és február 22-éig tartanak. Az eseményeket az amerikaiaknak a Peacock
1 view
A Fujifilm Instax Mini LiPlay Plus egy hibrid azonnali fényképezőgép, amely digitális fotókat készít és nyomtat. Kiváló módja annak, hogy fizikai emléked legyen egy pillanatról,
1 view
A COROS NOMAD tesztje: tökéletes választás a hétvégi túrázóknak és trail futóknak. A 2025-ös év egyik legjobb értékű sportórája, amely a Garmin Instinct vetélytársa. Kiváló
1 view

Kertészet