PHP Standards Recommendation

Mengenal Rekmomendasi Standar PHP (PSR)

sudah tau PHP kan? yah PHP adalah salah satu bahasa pemrograman yang cukup populer dikalangan web developer, selain dokumentasinya yang luas php juga termasuk dalam bahasa pemrograman yang mudah untuk dipelajari, dengan cukup banyaknya dukungan dari komunitas php berkembang dengan sangat cepat, sampai tulisan ini ditulis php sudah mencapai versi 7.x.x, framework-framework juga semakin banyak terlahir dari para master dan pecinta php, seperti Laravel, Codeigniter, SLim, Symponi, Cake, Yii dan lain – lain yang menjadikan pekerjaan sebagai web Developer semakin menjadi pusing, kenapa pusing ? ya terus terang saja semakin banyak hal yang harus diperlajari, seperti yang kita pahami bersama, masing-masing framework memiliki cara dan Mekanisme tersendiri, hal ini tentu saja mengharuskan kita memahami lebih jauh tentang framework yang kan kita gunakan, seperiti minimal kita harus membaca dokumentasi dari framework yang akan kita gunakan, karena masing-masing framework memiliki cara dan aturan sendiri dalam penulisan kode-kodenya.

sebenarnya php sendiri pada dasarnya tidak memiliki aturan standar cara penulisan baris kode, hal ini yang membuat beberapa orang yang tergabung dalam komunitas-komunitas pecinta php untuk menyepakati tentang standar penulisan kode untuk php, bermula ketika berlangsungnya acara php tek conference pada tahun 2009, komunitas yang bernama PHP Standards Group memperkenalkan sebuah standar penulisan kode untuk PHP.

fungsi dari standar ini cukup sederhana, yaitu untuk memudahkan dalam penelusuran, debuging dan manajemen yang baik dalam menggunakan php untuk membangun sebuah Aplikasi, hingga saat ini komunitas PHP Standards Group berada dibawah payung organisasi yang bernama FIG (Framework Interoperability Group), beriring sejalanya waktu standar-standar dalam penulisan kode php kita kenal dengan nama PSR (PHP Standards Recomendations). dengan begitu PSR merupakan Standar yang sebaiknya di-ikuti dalam pembutan/penulisan baris-baris kode php.

Kenapa Harus PSR?

pada awalnya saya juga berpikir kenapa harus mengikuti PSR ? tanpa PSR pun Aplikasi PHP yang saya buat berjalan dengan baik tanpa masalah ? ya memang tidak ada yang salah dengan pertanyaan seperti itu, bahkan wajar-wajar saja, tetapi….. ada tapinya loh…., dengan PSR kita akan jauh lebih mudah mengatur pengkodean dari aplikasi kita.

misalnya begini, anggap saja kita sedang mengerjakan sebuah projek dengan cakupan yang cukup besar, dan kita tidak menggunakan sebuah framework, tentu saja kita akan membuat banyak file php dibanyak folder, anggap saja ada file untuk koneksi, ada file untuk konfigurasi, ada file untuk tampilan dan lain sebagainya, memang tidak ada salahanya dengan hal yang seperti itu, tetapi akan lebih mudah kita memanajemen semua itu jika kita mengikuti standar penulisan kode php atau PSR.

PSR huh?

so, sampai dibagian ini tentu saja sudah paham apa itu PSR dan kenapa harus ikut PSR, well.. jika sudah paham dan mengerti semua penulis kembalikan kediri masing-masing, jika memang tidak mengikuti standar ya sah-sah saja, dan bagi yang mau mengikuti standar ya juga silahkan, tetapi karena memang tulisan ini judulnya mengenal PSR penulis sedikit ingin mengajak rekan-rekan untuk lebih memahami PSR dan cara menerapkan cara penulisan kode php yang direkomendasikan oleh PSR.

sampai saat ini ada 7 bagian dari PSR yang sudah disepakati untuk menjadi acuan atau rekomendasi dari penulisan kode php yaitu

  1. PSR-0 ( Autoloader Standard )
  2. PSR-1 ( Basic Coding Standard )
  3. PSR-2 ( Coding Style Guide )
  4. PSR-3 ( Logger Interfaces )
  5. PSR-4 ( Autoloading Standard )
  6. PSR-6 ( Caching Interfaces )
  7. PSR-7 ( HTTP Message Interface )

mungkin rekan-rekan bertanya, kemana PSR-5 kok ga nongol dalam list PSR diatas untuk yang menjadi acuan, PSR-5 ( PHPDoc Standard ) Masih berbentuk Draft dan belum disepakati untuk menjadi acuan, ya kita tunggu saja hasil review draftnya, apakah PSR-5 bisa menjadi Acuan atau tidak nantinya, masih banyak lagi PSR yang masih digodok (draft) menunggu untuk direview, untuk lebih jelasnya rekan-rekan bisa melihatnya di http://www.php-fig.org/psr/.

pada tulisan selanjutnya kita akan mencoba lebih memahami cara penerapan dan mengikuti standar penulisan yang sudah direkomendasikan oleh PSR.

PSR-0 (Autoloading Standard )

Acuan yang satu ini berkaitan dengan cara pemanggilan atau cara me-load sebuah class atau atauran penggunaan Namespaces (nanti akan kita bahas), aturan-aturan yang ada pada PSR-0 berkaitan dengan Autoloading, misalnya seperti

  1. namespace dan class harus memiliki struktur \<Vendor>\(<Namespaces>)\*ClassName
  2. setiap namespaces harus memiliki nama Vendor
  3. setiap namespaces bisa memiliki sub-namespaces tak terbatas
  4. setiap namespaces haris dikonversi menjadi DIRECTORY_SEPARATOR
  5. setiap namespaces harus memiliki akhira file .php
  6. setiap nama Vendor  harus berupa Alphabetic  kombinasi dari Huruf besar dan huruf kecil

bingung? sama :D, maksudnya gini, jika kita membuat sebuah class sebaiknya kita membuat sebuah namespaces untuk menandakan dimana class itu berada, misalanya

jika diterjemahkan namespace diatas dalam struktur folder maka akan menjadi
./Aplikasiku/Database/User.php , tetapi akan berbeda jika kita menggunakan tanda unserscore _ pada namespace, misalnya seperti

maka terjemahanya dalam bentuk folder akan menjadi ./Aplikasiku/Database/Model/User.php  sekarang sudah mengerti kan ? nah bagaiaman implementasi Autoloader berdasarkan Acuan rekomendasi tersebut, contoh sederhanaya seperti berikut.

PSR-1 ( Basic Coding Standard )

PSR yang satu ini bisa dikatakan sebagai acuan yang tanpa memahami PSR pun sebenarnya sudah diterapkan tanpa sadar, karena memang PSR-1 adalah standard Dasar dari penulisan kode php, aturan-aturannya juga cukup simple dan mudah dipahami, misalnya seperti

  1. setiap penulisan kode php harus diawali dengan tags <?php atau <?=
  2. setiap penulisan method atau fungsi tidak mengikut sertakan konfigurasi yang bersifat merubah atau memodifikasi konfiruasi standar yang ada dalam php.ini
  3. sebaiknya tidak langsung memanggil file menggunakan fungsi include
  4. sebaiknya tidak menuliskan tags html atau javascript yang bersifat mempengaruhi output
  5. sebaiknya tidak memodifikasi variable global
  6. sebaiknya tidak menuliskan fungsi atau method tanpa memeriksa apakah fungsi itu tersedia atau tidak.
  7. penggunaan namespaces dan clasess atau mengacu PSR-0 atau PSR-4

dari list acuan atau rekomendasi diatas, menurut saya yang paling banyak terjadi atau tidak mengikuti standar adalah bagian ke-2 – bagian ke-7, pada acuanya sudah jelas jelas disarankan tidak menggunakan include untuk memanggil file, tapi masih banyak diantara kita yang menggunakanya, misalnya merubah konfigurasi untuk reporting

atau manggil file php lain menggnakan include

atau nulis tag html atau javascript langsung difile php

atau bikin fungsi tanpa ngecek fungsinya udah ada atau belum, misalnya

ayo…. ngaku siapa yang masih seperti itu ? nah sekarang kan sudah paham acuan standar menyarankan menggunakan cara-cara serpti diatas, tapi secara jujur saya sendiri terkadang masih menggunakannya :D, terus gimana cara yang direkomendasikan oleh PSR-1  untuk Basic Coding Standard ? , misalnya kita ingin merubah setingan pada php sebaiknya lakukan perubahan melalui php.ini, misalnya lagi kita ingin mengincludekan file sebaiknya kita menggunakan require_once()  daripada menggunakan include() , karena jika kita menggunakan include() atau include_once()  jika file tidak ditemukan maka warning akan muncul tetapi php akan tetap mencari file yang akan di-includekan hal ini bisa memicu LFI atau local file inclusion, misalnya lagi ketika kita membuat sebuah fungsi sebaiknya kita cek dulu fungsi itu sudah ada atau belum, karena jika fungsi tidak ditemukan maka kita bisa mengkodisikan error yang terjadi, misalnya

misalnya lagi aturan membuat sebuah class menurut PSR-1,

atau jika masih menggunakan versi php 5.2 kebawah

atau pembuatan constants harus menggunakan Huruf besar dan atau menggunakan _ sebagai penghubung, misalnya seperti

nah sejauh ini sudah pahamkan aturan-aturan yang direkomendasikan oleh PSR-0 dan PSR-1 dalam penulisan baris-baris kode pada php ? semuanya kembali kediri masing-masing, mengikuti atau tidak acuan dan rekomendasi yang dianjurkan, pada kesempatan lainya kita akn mencoba lebih memahami tentang PSR-2, PSR-3 dan PSR-4

 

Published by

Khairu Aqsara

Khairu Aqsara a Web Developer almost every day and enjoys writing about his experiences . If you need help with your next project you know where to look.