PHP'de Fiber: Eşzamansız Kodu Senkron Tarzda Yazmak

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 32

sysuser

PREMİUM
Katılım
9 Kas 2025
Mesajlar
174
Tepki puanı
4
Cinsiyet
Kadın

PHP'de Fiber: Eşzamansız Kodu Senkron Tarzda Yazmak​


PHP 8.1 ile dile eklenen Fiber sınıfı, stackful coroutine desteği getirir. Generator'lardan farklı olarak call stack'in herhangi bir noktasında duraklatılabilir.

Basit Fiber Örneği​

PHP:
$fiber = new Fiber(function(): void {
    $value = Fiber::suspend('ilk değer');
    echo "Fiber içinde alınan: " . $value . "
";
});

$yielded = $fiber->start();
echo "Fiber dışında: " . $yielded . "
";
$fiber->resume('dışarıdan gönderilen');

Nerede Kullanılır?​

  • ReactPHP ve Amp gibi event loop kütüphaneleri artık Fiber üzerine inşa ediliyor
  • Eşzamanlı HTTP isteklerini callback karmaşası olmadan yazmak mümkün oluyor
  • Test ortamlarında zamanlama bağımlı senaryoları simüle etmek kolaylaşıyor

Fiber, PHP'yi tam anlamıyla async dil haline getirmez. Tek thread çalışır; event loop'un Fiber'ları sırayla yönetmesi gerekir. Ancak callback cehenneminden kurtulup okunabilir async kod yazmak için yeterince güçlüdür.
 
Geri
Üst