Coding Standard
Artikel ini sepenuhnya bukan milik saya, saya mendapatkan dari rekan Adi, saya share disini siapa tahu berguna bagi rekan-rekan yang lain.
Coding standard berikut merupakan terapan yang sama digunakan dengan Coding standard PHP-Pear dengan beberapa modifikasi.
1a. Nama Class, Fungsi & Metode
berdasarkan hirarki parent & child, Bisa menggunakan kombinasi huruf besar dan kecil. misal:
nama class = html
nama fungsi = html_print()
nama class = DBconnect
nama fungsi = DBconnect_FetchData()
nama fungsi = DBconnect_Close()
1b. Konstan
[php] 2. Indenting 3. Struktur kontrol [php] 4. memanggil fungsi [php] juga ada spasi diantara tanda "=". atau jika ada beberapa assignment dalam satu blok, posisi tanda "=" bisa dibuat sama. [php] 5. Deklarasi Fungsi [php] argumen dengan nilai default dimasukan di akhir argumen. selalu menghasilkan value yang berguna. [php] 6. Comment Dokumentasi/catatan di dlm skrip sangat dianjurkan untuk memudahkan kita mengetahui jalan dan alur skrip. 7. Including Code 8. Header Comment [php] http://www.ide.or.id —————————————————————————— http://www.gnu.org/copyleft/gpl.html ——————————————————————————
define(EMAIL_WEBMASTER, 'webmaster@foo.com');
define(EMAIL_SUPPORT, 'support@foo.com');
define(NL, '\n');
[/php]
indent/margin menggunakan spasi 4 karakter. TIDAK menggunakan tab
struktur kontrol dipisahkan satu spasi sebelum keyword dan kurung kurawal buka. mis:
if ((condition1) || (condition2)) {
action1;
} elseif ((condition3) && (condition4)) {
action2;
} else {
defaultaction;
}
[/php]
tidak ada spasi antara nama fungsi, kurung buka dan parameter pertama, spasi setelah koma diantara parameter, dan tidak ada spasi antara parameter terakhir dan kurung tutup.
$var = foo($bar, $baz, $quux);
[/php]
$short = foo($bar);
$long_variable = foo($baz);
[/php]
deklarasi fungsi menggunakan konvensi "one true brace"
function fooFunction($arg1, $arg2 = '') {
if (condition) {
statement;
}
return $val;
}
[/php]
function connect(&$dsn, $persistent = false) {
if (is_array($dsn)) {
$dsninfo = &$dsn;
} else {
$dsninfo = DB::parseDSN($dsn);
}
if (!$dsninfo || !$dsninfo['phptype']) {
return $this->raiseError();
}
return true;
}
[/php]
Untuk dokumentasi di dalam skrip, bisa menggunakan gaya C /* */ atau C++ //. Untuk lebih memudahkan pengaturan dokumentasi, bisa menggunakan aturan PHPDoc yang mirip dengan JavaDoc. Untuk detail silakan lihat http://www.phpdoc.de
Jika ingin memasukkan file lain, mis: file-file class/library sebaiknya menggunakan statement require_once() atau include_once() untuk memastikan bahwa file tsb hanya dipanggil sekali.
Dianjurkan utk setiap file terdapat informasi header, menggunakan struktur berikut:
/* —————————————————————————
Copyright (C) 2002 by IDE Development Team.
File Name: db.lib.php
Author: Slamet
——————————————————————————
Purpose of File:
class for database abstraction layer. currently only support MySQL.
——————————————————————————
Requirement:
PHP 4.02 or later version
——————————————————————————
License
To read the license please visit
Changelog
2002/05/05:Slamet – minor fix
————————————————————————— */
[/php]
stuju smua kecuali no. 2 (indenting), mnrtku lebih rapi klo pake tab..
apalagi banyak text editor bagus yg cenderung menggunakan tab drpd spasi