Menguasai sebuah bahasa pemrograman tidak berhenti di sintaksnya; kita juga perlu mengenali wilayah pakainya dan perkakas di sekelilingnya. PHP berumur lebih dari tiga dekade dan selama itu menumbuhkan ekosistem yang sangat matang — dari pengelola paket, framework, hingga standar penulisan kode. Pada chapter ini kita memetakan kegunaan PHP di dunia nyata dan mengenali pemain-pemain utama ekosistemnya, supaya Anda tahu alat apa yang tersedia ketika sebuah kebutuhan muncul.
Kegunaan Utama PHP #
Wilayah terbesar PHP adalah pengembangan aplikasi web sisi server. Beberapa kategori penggunaan yang paling umum adalah:
- Situs dan aplikasi berbasis CMS — WordPress, Drupal, dan Joomla adalah sistem manajemen konten berbasis PHP yang menggerakkan jutaan situs, mulai dari blog pribadi sampai portal perusahaan. Wikipedia juga berjalan di atas MediaWiki, perangkat lunak PHP.
- Toko daring dan e-commerce — WooCommerce (plugin WordPress), Magento, dan PrestaShop dibangun dengan PHP dan dipakai toko-toko daring di seluruh dunia.
- API dan backend aplikasi mobile — PHP melayani permintaan data dalam format JSON untuk dikonsumsi aplikasi Android, iOS, maupun aplikasi web lainnya.
- Sistem internal perusahaan — panel admin, dashboard laporan, dan aplikasi pengolahan data harian.
Kesamaan pola dari semua contoh di atas: ada data yang disimpan di database, ada aturan bisnis yang harus dijalankan di server, dan ada halaman atau tanggapan yang dirakit untuk dikirim ke pengguna. Semuanya adalah pekerjaan yang memang disiapkan PHP secara bawaan.
PHP di Luar Web #
Fokus utama PHP adalah web, tetapi PHP juga kerap dipakai tanpa web server sama sekali. Lewat antarmuka command line, PHP menjalankan skrip pemeliharaan basis data, tugas terjadwal (cron job) seperti rekap penjualan tengah malam, hingga pemrosesan berkas teks dan impor-ekspor data. Ekstensi bawaan seperti GD memungkinkan PHP memanipulasi gambar, sementara dukungan JSON membuat skrip CLI PHP nyaman dipakai sebagai lem antar-sistem. Ketika Anda nanti menulis skrip kecil untuk otomatisasi pekerjaan, kemampuan ini akan terasa sangat berguna.
Composer dan Packagist #
Ekosistem modern PHP berpusat pada Composer, pengelola dependensi (dependency manager) resmi de facto. Sebelum ada Composer pada 2012, berbagi kode PHP berarti menyalin berkas secara manual atau mengunduh paket ZIP; kini cukup mendeklarasikan paket yang dibutuhkan pada berkas composer.json:
{
"name": "budi/toko-kopi",
"description": "Aplikasi kasir toko kopi",
"require": {
"php": ">=8.1",
"monolog/monolog": "^3.0"
}
}Berkas di atas menyatakan bahwa proyek budi/toko-kopi membutuhkan PHP 8.1 atau lebih baru serta pustaka pencatat log monolog/monolog versi 3.x. Perintah composer install kemudian mengunduh paket-paket tersebut beserta seluruh dependensinya ke folder vendor/ dan menyiapkan autoloading, sehingga class dari paket tersebut dapat langsung dipakai tanpa include manual satu per satu:
composer installPaket-paket itu sendiri diterbitkan di Packagist, registri paket publik untuk PHP. Ketika Anda membutuhkan fungsi — HTTP client, manipulasi gambar, klien Redis — langkah pertama yang bijak adalah mencari di Packagist alih-alih menulisnya dari nol.
Framework dan Standar Komunitas #
Untuk aplikasi berskala besar, komunitas PHP membangun framework yang menyediakan kerangka siap pakai: routing, template engine, ORM, hingga keamanan dasar. Dua nama terbesar adalah Laravel dan Symfony; Laravel dikenal dengan sintaksnya yang ekspresif dan dokumentasinya yang ramah, sedangkan Symfony dikenal dengan komponen-komponennya yang juga dipakai proyek lain. Keduanya akan kita bahas khusus pada Section Framework PHP.
Ekosistem ini juga memiliki alat mutu yang wajib Anda kenal sejak dini: PHPUnit untuk pengujian otomatis, PHPStan dan Psalm untuk analisis statis, serta PHP_CodeSniffer untuk menjaga gaya kode. Selain itu, PHP-FIG (Framework Interop Group) menerbitkan PHP Standards Recommendations (PSR) — misalnya PSR-4 untuk konvensi autoloading dan PSR-12 untuk gaya penulisan — agar kode antar-proyek saling kompatibel dan mudah dibaca.
Ekstensi sebagai Sumber Kapabilitas #
Kemampuan PHP diperluas oleh extension — modul terpisah yang bisa aktif maupun nonaktif pada setiap instalasi. Ekstensi pdo_sqlite misalnya menghadirkan akses database SQLite, curl menghadirkan HTTP client, mbstring menghadirkan pengolahan teks multibyte, dan gd menghadirkan pemrosesan gambar. Kita bisa memeriksa ekstensi apa saja yang aktif langsung dari kode:
<?php
$ekstensi = get_loaded_extensions();
sort($ekstensi);
echo "Jumlah ekstensi aktif: " . count($ekstensi) . "\n";
echo "Lima ekstensi pertama: " . implode(", ", array_slice($ekstensi, 0, 5)) . "\n";
foreach (["pdo_sqlite", "mbstring", "curl"] as $nama) {
$status = in_array($nama, $ekstensi, true) ? "tersedia" : "tidak ada";
echo "Ekstensi $nama: $status\n";
}Output yang Dihasilkan:
Jumlah ekstensi aktif: 46
Lima ekstensi pertama: Core, PDO, Phar, Reflection, SPL
Ekstensi pdo_sqlite: tersedia
Ekstensi mbstring: tersedia
Ekstensi curl: tersediaMari kita bedah program di atas:
- Baris 2: fungsi
get_loaded_extensions()mengembalikan array berisi nama semua ekstensi yang aktif pada PHP yang sedang berjalan. - Baris 3:
sort()mengurutkan array di tempat agar hasilnya stabil dan mudah dibaca. - Baris 5 dan 6:
count()menghitung jumlah elemen, sementaraimplode()merangkai potongan array menjadi satu string dengan pemisah koma;array_slice()mengambil lima elemen pertama. - Baris 8 sampai 11: untuk tiap nama ekstensi,
in_array()memeriksa keanggotaan dengan mode ketat (truememaksa perbandingan tipe string).
Dengan peta kegunaan dan ekosistem ini, Anda kini tahu ke mana arah perjalanan kita. Namun sebelum melompat ke instalasi, ada satu pertanyaan teknis yang wajib dijawab lebih dahulu: bagaimana sebenarnya PHP memproses kode menjadi halaman web? Itulah topik chapter berikutnya.