PSR (PHP Standard Recommendation)
PSR singkatan dari PHP Standard Recommendation, merupakan serangkaian standar yang dikeluarkan oleh kelompok FIG (Framework Interoperability Group). Standar PSR dirancang untuk mempromosikan praktik terbaik dalam pengembangan perangkat lunak PHP, dengan tujuan utama untuk meningkatkan interoperabilitas antara kerangka kerja (framework) dan pustaka-pustaka PHP yang berbeda.
Setiap PSR berisi spesifikasi teknis yang mendefinisikan praktik yang disarankan untuk berbagai aspek dalam pengembangan PHP, seperti struktur direktori, penamaan kelas, penggunaan namespace, autoloading, dan lain-lain. Implementasi standar PSR membantu dalam memelihara konsistensi dan kualitas kode, serta memfasilitasi integrasi antara proyek-proyek PHP yang berbeda.
Beberapa contoh PSR yang terkenal meliputi:
-
PSR-1: Standar Dasar Kode Gaya (Basic Coding Standard). PSR ini berisi aturan-aturan dasar tentang bagaimana kode PHP harus ditulis, termasuk penamaan kelas, metode, properti, dan penggunaan namespace.
-
PSR-2: Standar Kode Gaya (Coding Style Guide). PSR ini mengatur tentang tata letak (formatting) kode PHP, seperti indentasi, penempatan kurung kurawal, dan sebagainya untuk meningkatkan keterbacaan kode.
-
PSR-4: Standar Autoloader (Autoloading Standard). PSR ini mendefinisikan aturan untuk autoloading kelas dalam aplikasi PHP dengan menggunakan namespace dan struktur direktori yang konsisten.
-
PSR-7: Standar Request dan Response HTTP (HTTP Message Interface). PSR ini mendefinisikan antarmuka umum untuk objek request dan response HTTP, yang memungkinkan interoperabilitas yang lebih baik antara pustaka-pustaka dan kerangka kerja PHP yang berbeda.
-
PSR-12: Standar Kode Gaya yang Diperbarui (Extended Coding Style Guide). PSR ini adalah revisi dari PSR-2 yang lebih lengkap dan mendetail dalam menentukan aturan-aturan gaya penulisan kode PHP.
Implementasi PSR membantu komunitas PHP untuk bekerja bersama dengan lebih efisien, mempromosikan kode yang konsisten dan mudah dipelihara, serta memungkinkan pengembang untuk lebih fokus pada pengembangan fungsionalitas daripada pada detail implementasi teknis yang umum.