Membangun Modul Sederhana Sendiri Menggunakan Standar Interoperabilitas (PSR)
Di artikel sebelumnya, kita sudah melihat betapa hebatnya komponen-komponen populer seperti Symfony, Illuminate, dan Guzzle. Komponen-komponen tersebut bisa saling bekerja sama dengan mulus meski dibuat oleh tim yang berbeda.
Pertanyaannya: Mengapa berbagai paket dari pengembang berbeda bisa terhubung tanpa konflik?
Jawabannya adalah Interoperabilitas yang dipandu oleh standar PSR (PHP Standards Recommendation) dari kelompok PHP-FIG.
Di artikel ini, kita akan melangkah dari sekadar pengguna menjadi pencipta. Kita akan mempraktikkan cara membuat modul/paket PHP sederhana milik sendiri yang rapi, profesional, dan mematuhi standar internasional!
1. Apa Itu Interoperabilitas & Pentingnya Standar PSR?
Interoperabilitas adalah kemampuan suatu sistem atau komponen untuk berinteraksi dan bekerja sama dengan sistem lain tanpa batasan atau penyesuaian khusus yang rumit.
Agar kode yang kamu tulis bisa interoperable (cocok digabungkan dengan proyek PHP apa pun atau framework mana pun), kamu perlu mematuhi rekomendasi standar dari PHP-FIG (PHP Framework Interoperability Group).
Beberapa Standar PSR Utama yang Wajib Diketahui:
-
PSR-1 & PSR-12 (Coding Standards): Aturan penulisan kode (penataan spasi, huruf kapital pada Class, penggunaan kurung kurawal, dll) agar gaya penulisan konsisten di seluruh dunia.
-
PSR-4 (Autoloading Standard): Pemetaan nama namespace ke struktur folder fisik (sudah kita pelajari di Artikel 8).
-
PSR-3 (Logger Interface): Standar antarmuka (interface) untuk komponen pencatatan log.
-
PSR-7 & PSR-17 (HTTP Message Interfaces): Standar antarmuka untuk mengolah HTTP Request dan Response.
2. Studi Kasus: Membangun Modul "SimpleValidator"
Mari kita buat sebuah modul PHP mandiri bernama SimpleValidator. Modul ini berfungsi untuk memvalidasi format input dasar (seperti email dan panjang teks).
Langkah 1: Siapkan Struktur Folder Proyek Modul
Buat folder baru bernama simple-validator di komputermu dengan struktur berikut:
Plaintext
simple-validator/
├── composer.json
├── README.md
└── src/
└── Validator.php
Langkah 2: Buat Konfigurasi composer.json yang Standar
Buka file composer.json dan tuliskan metadata modulmu lengkap dengan pemetaan PSR-4:
JSON
{
"name": "developer/simple-validator",
"description": "Modul validator sederhana yang mematuhi standar PSR-4",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Nama Kamu",
"email": "kamu@example.com"
}
],
"require": {
"php": "^8.0"
},
"autoload": {
"psr-4": {
"Dev\\Validator\\": "src/"
}
}
}
Langkah 3: Tulis Kode Modul Sesuai Standar Coding (PSR-1/PSR-12)
Buat file src/Validator.php. Pastikan kamu menyertakan namespace, menerapkan strict typing, dan menggunakan gaya penulisan yang rapi:
PHP
<?php
declare(strict_types=1);
namespace Dev\Validator;
/**
* Class Validator Sederhana
*/
class Validator
{
/**
* Memeriksa apakah input adalah format email yang valid
*/
public function isEmail(string $email): bool
{
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}
/**
* Memeriksa apakah panjang teks memenuhi batas minimum
*/
public function minLength(string $text, int $min): bool
{
return mb_strlen(trim($text)) >= $min;
}
/**
* Memeriksa apakah teks hanya berisi karakter alfanumerik
*/
public function isAlphanumeric(string $value): bool
{
return ctype_alnum($value);
}
}
Langkah 4: Generate Autoload & Pengujian Lokal
-
Buka terminal di dalam folder
Bashsimple-validator/, lalu jalankan:composer dump-autoload -
Buat file
test.phpdi luar foldersrc/untuk menguji modul barumu:
PHP
<?php
require __DIR__ . '/vendor/autoload.php';
use Dev\Validator\Validator;
$validator = new Validator();
$emailTes = "user@domain.com";
$passwordTes = "12345";
// Pengujian 1: Email
if ($validator->isEmail($emailTes)) {
echo "✓ Email valid!<br>";
} else {
echo "✗ Email tidak valid!<br>";
}
// Pengujian 2: Minimal Password (min 8 karakter)
if ($validator->minLength($passwordTes, 8)) {
echo "✓ Password cukup panjang!<br>";
} else {
echo "✗ Password terlalu pendek (minimal 8 karakter)!<br>";
}
3. Menjadikan Modul Reusable & Siap Dideploy
Bagaimana agar modul yang sudah kamu buat ini bisa dipasang di proyek-proyekmu yang lain atau dipakai oleh komunitas web?
-
Gunakan Version Control (Git): Inisialisasi Git di dalam folder modulmu, buat commit, lalu unggah (push) repositorimu ke GitHub atau GitLab.
-
Tambahkan Tag Versioning: Gunakan Git Tag untuk menandai rilis versi (contoh:
git tag v1.0.0). -
Submit ke Packagist (Opsional): Daftarkan URL GitHub milikmu ke packagist.org. Setelah terdaftar, siapa pun di seluruh dunia bisa menginstall modul buatanmu cukup dengan mengetik:
Bashcomposer require developer/simple-validator
Kesimpulan
Membangun modul sendiri bukan hanya melatih pemahaman teknis OOP dan Composer, tetapi juga membentuk pola pikir pengembang yang profesional dan berstandar internasional. Dengan mematuhi standar PSR, kode yang kamu tulis akan selalu rapi, konsisten, dan siap diintegrasikan ke ekosistem PHP modern.




