Composer & Autoloading

Jika kamu mau membuat fitur Export ke PDF atau Kirim Email, apakah kamu harus menulis kodenya dari nol? Tentu tidak! Di dunia programming, kita memakai ulang kode yang sudah dibuat orang lain (disebut Library atau Package).

Di sinilah peran penting Composer.

1. Apa itu Composer?

Composer adalah Package Manager untuk PHP. Tugas utamanya adalah:

  1. Mendownload library PHP yang kamu butuhkan dari internet.
  2. Memastikan versi library tersebut cocok dengan PHP kamu.
  3. Mendownload dependensi lain (jika library A butuh library B, Composer akan otomatis mendownload library B).
  4. Mengatur Autoloading (memanggil file PHP secara otomatis).

Analogi Sederhana:

Composer mirip seperti App Store / Play Store di HP kamu, tapi khusus untuk kode PHP.

(Catatan: Jika kamu menggunakan Laravel Herd, Composer sudah otomatis terinstall!)

2. Mengenal Packagist.org

Di mana Composer mencari library? Jawabannya ada di Packagist.org.

Packagist adalah gudang pusat (repository) dari seluruh library open-source PHP di dunia. Mulai dari library untuk manipulasi gambar, kirim email, bikin chart, sampai framework besar seperti Laravel, semuanya tersimpan di sana.

3. Cara Menggunakan Composer

Mari kita praktik menginstall sebuah library nyata. Kita akan menginstall Carbon (Library populer untuk memanipulasi waktu dan tanggal).

Langkah 1: Inisialisasi

Buka Terminal / Command Prompt di dalam folder project kamu, lalu ketik:

composer init

(Tekan Enter berkali-kali untuk menyetujui opsi default).

Perintah ini akan menghasilkan file composer.json. File ini mencatat informasi tentang project kamu dan library apa saja yang kamu pakai.

Langkah 2: Install Library

Ketik perintah ini di Terminal:

composer require nesbot/carbon

Apa yang terjadi di balik layar?

  1. Composer mendownload library Carbon dari internet.
  2. Menyimpannya di dalam folder baru bernama vendor/.
  3. Membuat file composer.lock (pengunci versi).
  4. Menambahkan Carbon ke daftar di dalam composer.json.
Penting: Folder Vendor!

Folder vendor/ bisa menjadi sangat besar. Jangan pernah mengupload folder ini ke GitHub! Selalu tambahkan vendor/ ke dalam file .gitignore.

Jika temanmu meng-clone projectmu, mereka cukup mengetik composer install, dan Composer akan membaca composer.json lalu mendownload ulang semua library yang dibutuhkan.

4. Autoloading (Selamat Tinggal require)

Sebelum ada Composer, jika kita butuh fungsi di file lain, kita harus menulis require berkali-kali:

require 'functions/format.php';
require 'classes/UserModel.php';
require 'classes/ProdukModel.php';
require 'libraries/PHPMailer.php';
// ... dan puluhan baris require lainnya

Composer punya fitur ajaib bernama Autoload. Ia akan otomatis mencari dan memanggil class/file yang kamu butuhkan saat kamu mengetikkannya.

Cara Memakai Library dengan Autoload

Buat file test-waktu.php:

<?php
// Wajib diletakkan di baris paling atas!
// Memanggil sihir autoload dari composer
require 'vendor/autoload.php';

// Memanggil class Carbon
use Carbon\Carbon;

// Contoh penggunaan (Otomatis bahasa Indonesia!)
Carbon::setLocale('id');

$sekarang = Carbon::now();
echo "Waktu saat ini: " . $sekarang->translatedFormat('l, d F Y - H:i') . "<br>";

$besok = Carbon::tomorrow();
echo "Besok adalah: " . $besok->diffForHumans();

Hanya dengan satu baris require 'vendor/autoload.php', seluruh library yang ada di dalam folder vendor/ siap untuk digunakan!

Selanjutnya

Kita sudah memahami OOP, MVC, dan Composer. Sekarang kita akan melihat bagaimana semua konsep ini digabungkan secara elegan oleh framework paling populer di dunia PHP: Pengenalan Laravel →.