Sebelum menyentuh Swoole, kalian perlu menguasai PHP OOP & CLI, Composer dan PSR, dasar TCP/IP & HTTP, serta konsep event loop dan non-blocking I/O. Di episode ini kalian menyiapkan Linux/macOS, PHP 8.3+, menginstall ekstensi Swoole via pecl, dan memverifikasi seluruh environment siap dipakai sepanjang series.

Selamat datang di series Belajar Swoole! Series ini akan membawa kalian menguasai Swoole — framework networking C++ untuk PHP yang membawa coroutine, async I/O, dan multi-process server — untuk membangun API, WebSocket, IoT, microservices, hingga game server berperforma tinggi. Total ada 26 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.
Sebelum menjalankan php server.php, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena Swoole mengubah cara PHP dieksekusi: bukan lagi "satu proses per request" seperti PHP-FPM, melainkan server long-running dengan event loop, proses multi-worker, dan coroutine. Kalian akan berhadapan langsung dengan konsep network, socket, dan concurrency yang jarang disentuh developer PHP biasa. Tanpa memahami lapisan-lapisan ini, kalian akan kesulitan mendiagnosis mengapa worker crash, kenapa koneksi tidak masuk, atau mengapa memory membengkak.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan PHP + ekstensi Swoole, lalu memverifikasi environment untuk pertama kali.
Swoole mengeksekusi kode PHP yang sama dengan yang kalian kenal, tetapi sebagai server process yang memakai event loop. Kalian wajib nyaman menulis PHP OOP (namespace, class, closure), memahami konsep yield dan Generator (fondasi coroutine), serta terbiasa menjalankan skrip lewat CLI:
php -vHampir semua proyek Swoole modern dibangun di atas framework seperti Hyperf atau memakai package dari Packagist. Kalian wajib memahami composer.json, composer install, dan setidaknya akrab dengan standar PSR-4 (autoloading) dan PSR-7 (HTTP message). Contoh kode di series ini bisa langsung dijalankan tanpa framework, tetapi pemahaman PSR akan sangat membantu di episode 15.
Swoole adalah perpustakaan networking: ia mendengarkan koneksi TCP, mem-parsing request HTTP, dan mengelola koneksi WebSocket. Kalian wajib paham arah alurnya secara kasar sebelum mendalami detailnya di episode 2:
Ini yang paling fundamental. PHP-FPM memblokir selama menunggu I/O (database, HTTP call). Swoole, sebaliknya, menunda pekerjaan yang lambat dan melanjutkan tugas lain sambil menunggu. Kalian perlu akrab dengan istilah event loop, callback, blocking vs non-blocking, dan coroutine — semua ini akan dibedah secara detail mulai episode 2 dan 7.
Swoole memakai fitur kernel Linux (epoll, kqueue di macOS) dan tidak tersedia di Windows. Gunakan Linux (distro apa pun), macOS, atau WSL2/VM Linux di atas Windows:
uname -a
uname -mSwoole 6.x dan OpenSwoole 26.2 sudah mendukung PHP 8.5. Versi minimum yang disarankan untuk series ini adalah 8.3, dengan rekomendasi 8.4/8.5 untuk performa terbaik:
sudo apt install php-cli php-dev php-mbstring php-curl php-openssl # Debian/Ubuntu
brew install php # macOSphp-dev (atau setara php8.x-dev) wajib karena pecl akan meng-compile ekstensi dari source — butuh header PHP.
Cara paling umum adalah pecl install swoole (resmi dari tim Swoole) atau pecl install openswoole (fork komunitas). Swoole 6.x di-install sebagai ekstensi bernama swoole:
sudo pecl install swooleSetelah selesai, aktifkan di php.ini:
extension=swoole.soTim Swoole menyediakan image Docker resmi phpswoole/swoole yang sudah berisi PHP + Swoole siap pakai — sangat berguna bila kalian tidak ingin mengotori mesin lokal:
docker run --rm -it phpswoole/swoole php -vSebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
php -v
php -m | grep -i swoole
php --ri swoolephp --ri swoole menampilkan informasi lengkap ekstensi: versi Swoole, author, dan daftar build options (misal apakah SSL, coroutine hooks, dan pgsql aktif). Pastikan versi Swoole 6.x dan php -v menunjukkan 8.3+ sebelum melanjutkan.
Note
Kalian cukup membutuhkan ekstensi swoole untuk series ini. Ekstensi tambahan seperti openssl, pgsql, dan sockets baru akan dipakai saat kita membahas TLS (episode 18) dan database (episode 13) — bisa diinstall belakangan secara bertahap.
Agar contoh di series ini langsung bisa dijalankan, susun proyek dengan struktur sederhana:
swoole-lab/
server.php # entry server (dibuat mulai episode 4)
worker.php # proses tambahan (dibahas episode 10-11)
composer.json # optional, untuk framework (episode 15)Rangkuman yang sudah kalian siapkan di episode 0:
pecl install swoole dan aktif di php.ini.php --ri swoole mencetak versi Swoole tanpa error.swoole-lab/ siap untuk kode server.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 25 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
pecl install swoole.php --ri swoole dan php -m.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa kalian membutuhkan Swoole — dari keterbatasan PHP-FPM yang me-restart seluruh aplikasi setiap request, lahirnya Swoole di Tencent pada 2012, hingga perbandingan Swoole vs OpenSwoole dan mengapa Swoole menang benchmark performa di 2026. Pastikan environment kalian sudah siap, karena perjalanan Belajar Swoole baru saja dimulai!