Kalau Anda developer PHP pasti cepat atau lambat Anda akan mendengar istilah “PSR”, atau “standar PSR-0″, “standar PSR-1″ dan seterusnya. Lalu apa itu PSR?
PSR adalah singkatan dari “PHP Standards Recommendations”, yaitu sekumpulan standar penulisan skrip PHP yang dibuat oleh developer PHP, praktisi, pengembang framework atau aplikasi dan semua pihak atau perusahaan yang memiliki kepentingan dengan PHP dan adanya standar yang disepakati bersama.
Kenapa PSR?
PHP sebelumnya tidak pernah memiliki standar yang benar-benar digunakan bersama dalam penulisan kode-nya. Kalaupun ada, ini biasanya dikeluarkan oleh masing-masing pihak yang berbeda-beda sesuai kepentingan mereka. Ini mungkin disebabkan oleh sejarah PHP yang memang dibuat untuk developer yang ingin membangung aplikasi web semudah dan secepat mungkin.
Namun dalam perjalanannya, ketika PHP mulai diadopsi oleh perusahaan-perusahaan besar dan digunakan untuk membangun aplikasi yang “serius”, ditambah dengan berjamurnya PHP framework di mana masing-masing memiliki cara penulisan yang berbeda-beda, akhirnya kebutuhan akan adanya standarisasi ini menjadi sangat penting.
Sejarah Singkat PSR
Pada konferensi php|tek tahun 2009, beberapa developer yang terlibat dalam project berbeda mendiskusikan kemungkinan adanya mekanisme agar mereka bisa bekerja antar project yang berbeda tersebut. Perbedaan cara masing-masing project dalam menyelesaikan persoalan, termasuk standarisasi penulisan akhirnya menjadi topik utama. Diskusi ini berujung pada pembentukan Framework Interoperability Group (FIG).
Biarpun namanya “Framework Interoperability Group”, group ini kemudian beranggotakan bukan hanya pengembang framework (seperti Lithium, Symfony, dan CakePHP), melainkan seluruh developer yang mengembangkan aplikasi web berbasis PHP seperti PyroCMS, phpDocumentor dan bahkan Composer.
Lewat diskusi dan voting yang dilakukan dalam mailing list mereka, FIG memutuskan dan merekomendasikan standar-standar yang dinamakan standar PSR yang tujuannya cuma satu, yaitu agar tiap project bisa bekerja sama (interoperability).
Sampai tulisan ini dibuat, sudah ada empat standarisasi yang ditelurkan FIG, yaitu PSR-0 untuk autoloader, PSR-1 untuk standar penulisan kode PHP, PSR-2 untuk panduan gaya penulisan (style guide) kode PHP dan merupakan pengembangan dari PSR-1, kemudian yang terakhir yaitu PSR-3 untuk standar logger interface.