Untuk menjadi programer profesional, tentunya diperlukan aturan-aturan dasar penulisan kode PHP yang baik, di artikel ini akan dijelaskan bagaimana cara penulisan kode PHP yang baik. Tentunya tidak ada paksaan untuk menggunakan aturan-aturan penulisan seperti yang akan saya jelaskan tetapi sangat direkomendasikan agar tetap konsisten dalam penulisan kode PHP.
File Format
File harus disimpan dengan pengkodean Unicode (UTF-8). BOM tidak boleh digunakan. Tidak seperti UTF-16 dan UTF-32, tidak ada perintah byte untuk menunjukkan dalam file yang dikodekan UTF-8, dan BOM dapat memiliki efek samping negatif dalam pemrosesan PHP, efeknya aplikasi dapat mengatur header sendiri.
Tag Penutup PHP
Tag penutup PHP pada dokumen PHP ?> adalah opsional untuk parser PHP. Namun, jika digunakan, spasi kosong apa pun yang mengikuti tag penutup, baik yang diperkenalkan oleh developer, pengguna, atau aplikasi FTP, dapat menyebabkan output yang tidak diinginkan, kesalahan PHP, atau halaman kosong. Untuk alasan ini, semua file PHP HARUS MENGHILANGKAN tag penutup PHP dan diakhiri dengan satu baris kosong sebagai gantinya.
Penamaan File
Penamaan File Class PHP harus dinamai diawali oleh huruf kapital terlebih dahulu (UCFirst), sementara nama file lainnya (Config, Views, Skrips, dll.) harus dalam huruf kecil.
SALAH
somelibrary.php
someLibrary.php
SOMELIBRARY.php
Some_Library.php
Application_config.php
Application_Config.php
applicationConfig.php
BENAR
Somelibrary.php
Some_library.php
applicationconfig.php
application_config.php
Selain itu, nama file Class harus sesuai dengan nama Class itu sendiri. Misalnya, jika Anda memiliki Class bernama Myclass, maka nama filenya harus Myclass.php.
Penamaan Class dan Method
Nama Class harus selalu dimulai dengan huruf besar. Beberapa kata harus dipisahkan dengan garis bawah, dan bukan CamelCased.
SALAH
class superclass
class SuperClass
BENAR
class Super_class
class Super_class {
public function __construct()
{
}
}
Nama Method di Class harus sepenuhnya lebih kecil dan dinamai untuk menunjukkan fungsinya dengan jelas, sebaiknya menyertakan kata kerja. Cobalah untuk menghindari nama yang terlalu panjang dan verbose. Beberapa kata harus dipisahkan dengan garis bawah.
SALAH
function fileproperties() // tidak deskriptif dan membutuhkan pemisah garis bawah
function fileProperties() // tidak deskriptif dan menggunakan CamelCase
function getfileproperties() // Lebih baik! Tapi masih hilang pemisah garis bawah
function getFileProperties() // Menggunakan CamelCase
function get_the_file_properties_from_the_file() // harus disederhanakan
BENAR
function get_file_properties() // deskriptif, pemisah garis bawah, dan semua huruf kecil
Nama Variabel
Pedoman penamaan variabel sangat mirip dengan yang digunakan untuk metode Class. Variabel hanya boleh berisi huruf kecil, menggunakan pemisah garis bawah, dan diberi nama yang wajar untuk menunjukkan tujuan dan kontennya. Variabel non-kata yang sangat pendek hanya boleh digunakan sebagai iterator dalam loop for().
SALAH
$j = 'foo'; // single letter variables should only be used in for() loops
$Str // contains uppercase letters
$bufferedText // uses CamelCasing, and could be shortened without losing semantic meaning
$groupid // multiple words, needs underscore separator
$name_of_last_city_used // too long
BENAR
for ($j = 0; $j < 10; $j++)
$str
$buffer
$group_id
$last_city
Komentar
Secara umum, kode harus dikomentari secara produktif. Ini tidak hanya membantu menggambarkan flow dan maksud kode untuk programmer yang kurang berpengalaman. Tidak ada format yang diperlukan untuk komentar, tetapi berikut ini direkomendasikan.
/**
* Super Class
*
* @package Package Name
* @subpackage Subpackage
* @category Category
* @author Author Name
* @link http://example.com
*/
class Super_class {
/**
* Encodes string for use in XML
*
* @param string $str Input string
* @return string
*/
function xml_encode($str)
/**
* Data for class manipulation
*
* @var array
*/
public $data = array();
// break up the string by newlines
$parts = explode("\n", $str);
// A longer comment that needs to give greater detail on what is
// occurring and why can use multiple single-line comments. Try to
// keep the width reasonable, around 70 characters is the easiest to
// read. Don't hesitate to link to permanent external resources
// that may provide greater detail:
//
// http://example.com/information_about_something/in_particular/
$parts = $this->foo($parts);
Konstanta
Konstanta (Constant) mengikuti pedoman/aturan yang sama seperti variabel, kecuali konstanta harus selalu sepenuhnya huruf besar. Selalu gunakan konstanta CodeIgniter jika sesuai, yaitu SLASH, LD, RD, PATH_CACHE, dl
SALAH
myConstant // missing underscore separator and not fully uppercase
N // no single-letter constants
S_C_VER // not descriptive
$str = str_replace('{foo}', 'bar', $str); // should use LD and RD constants
BENAR
MY_CONSTANT
NEWLINE
SUPER_CLASS_VERSION
$str = str_replace(LD.'foo'.RD, 'bar', $str);
TRUE, FALSE, and NULL
TRUE, FALSE, dan NULL harus selalu memakai huruf kapital.
SALAH
if ($foo == true)
$bar = false;
function foo($bar = null)
BENAR
if ($foo == TRUE)
$bar = FALSE;
function foo($bar = NULL)
Operator Logika
Penggunaan operator perbandingan || "OR" tidak disarankan. karena kejelasannya pada beberapa perangkat output rendah (terlihat seperti angka 11, misalnya)
SALAH
if ($foo || $bar)
if ($foo AND $bar) // okay but not recommended for common syntax highlighting applications
if (!$foo)
if (! is_array($foo))
BENAR
if ($foo OR $bar)
if ($foo && $bar) // recommended
if ( ! $foo)
if ( ! is_array($foo))
Sumber: Codeigniter.com