PHP Academy · Pelajaran

Fiber: Konkruensi Kooperatif

Jeda dan lanjutkan eksekusi PHP dengan Fiber untuk pola yang menyerupai asinkron.

Pelajaran 4 dari 413 langkah

Fiber: Konkruensi Kooperatif adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa Itu Fiber?

PHP 8.1 memperkenalkan Fiber—korutin ringan yang dapat menjeda eksekusi pada titik tertentu dan melanjutkannya nanti, sehingga memungkinkan multitugas kooperatif.

Fiber dibandingkan Asinkron

Fiber bukan thread paralel—PHP tetap berjalan dalam satu thread. Fiber memungkinkan satu konteks eksekusi secara sukarela menyerahkan kendali kepada konteks lain, sehingga memungkinkan pola yang menyerupai operasi asinkron.

Membuat Fiber

Buat Fiber dengan meneruskan fungsi yang dapat dipanggil ke konstruktornya. Fiber tersebut tidak dimulai sampai Anda memanggil start().

<?php
$fiber = new Fiber(function (): void {
    echo "Fiber started\n";
    $value = Fiber::suspend("first suspension");
    echo "Resumed with: $value\n";
});

Memulai dan Menangguhkan

start() menjalankan Fiber hingga Fiber::suspend() pertama. Nilai yang diteruskan ke suspend() dikembalikan oleh start().

<?php
$suspended = $fiber->start(); // runs until suspend()
echo $suspended; // "first suspension"

Melanjutkan Fiber

resume($value) melanjutkan Fiber dari titik penangguhannya. Nilai yang diteruskan ke resume() dikembalikan oleh Fiber::suspend() di dalam Fiber.

<?php
$fiber->resume("hello from main");
// Inside fiber: $value = "hello from main"
// Prints: "Resumed with: hello from main"

Contoh Fiber Lengkap

Siklus hidup Fiber secara lengkap: membuat, memulai, menangguhkan, melanjutkan, lalu mengakhiri.

<?php
$fiber = new Fiber(function (): string {
    $x = Fiber::suspend("paused");
    return "Fiber done, received: $x";
});

$msg = $fiber->start();   // "paused"
$fiber->resume("hi!");
echo $fiber->getReturn(); // "Fiber done, received: hi!"

Metode Status Fiber

Periksa status Fiber: isStarted(), isSuspended(), isRunning(), isTerminated().

<?php
var_dump($fiber->isTerminated()); // true after getReturn()

Penanganan Kesalahan dalam Fiber

Lemparkan pengecualian ke dalam Fiber dengan $fiber->throw(new Exception(...)). Pengecualian tersebut muncul di titik Fiber::suspend() di dalam Fiber.

Integrasi Loop Peristiwa

Fiber dirancang untuk mendukung loop peristiwa (ReactPHP, Revolt), tempat panggilan balik I/O ditangguhkan saat menunggu, lalu dilanjutkan ketika data tiba.

Fiber dibandingkan dengan Generator

Generator (PHP 5.5+) juga dapat berhenti sementara dengan yield, tetapi terutama digunakan untuk iterasi malas. Fiber merupakan mekanisme korutin yang lebih umum, dengan penerusan nilai dua arah dan nilai kembalian.

Kasus Penggunaan Praktis

Fiber mendukung klien HTTP nonblokir dalam Revolt, kueri basis data asinkron, penjadwal tugas kooperatif, dan alur pengaliran data tanpa kerumitan multithreading.

Ringkasan

Fiber memungkinkan satu konteks eksekusi PHP dijeda dan dilanjutkan, sehingga memungkinkan konkurensi kooperatif. Fiber menjadi fondasi kerangka kerja asinkron PHP modern. Fiber::suspend() menyerahkan kendali; resume() mengembalikannya.

Pemeriksaan Singkat

Bagaimana Anda meneruskan nilai ke dalam Fiber yang ditangguhkan?

Gratis untuk memulai

Belajar PHP dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
49
Pelajaran
195

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fiber: Konkruensi Kooperatif” gratis?

Ya — teks lengkap “Fiber: Konkruensi Kooperatif” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Fiber: Konkruensi Kooperatif”?

Jeda dan lanjutkan eksekusi PHP dengan Fiber untuk pola yang menyerupai asinkron. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Fiber: Konkruensi Kooperatif” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ekspresi Match dan Argumen Bernama
  2. Operator Nullsafe dan Tipe Union
  3. Enumerasi (Enum)
  4. Fiber: Konkruensi Kooperatif
← Kembali ke PHP Academy