Dec
17
2007

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

define(EMAIL_WEBMASTER, ‘webmaster@foo.com’);
define(EMAIL_SUPPORT, ‘support@foo.com’);
define(NL, ‘\n’);

2. Indenting
indent/margin menggunakan spasi 4 karakter. TIDAK menggunakan tab

3. Struktur kontrol
struktur kontrol dipisahkan satu spasi sebelum keyword dan kurung kurawal buka. mis:

if ((condition1) || (condition2)) {
    action1;
} elseif ((condition3) && (condition4)) {
    action2;
} else {
    defaultaction;
}

4. memanggil fungsi
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);

juga ada spasi diantara tanda "=". atau jika ada beberapa assignment dalam satu blok, posisi tanda "=" bisa dibuat sama.

$short           = foo($bar);
$long_variable = foo($baz);

5. Deklarasi Fungsi
deklarasi fungsi menggunakan konvensi "one true brace"

function fooFunction($arg1, $arg2 = '') {
    if (condition) {
        statement;
   }
   return $val;
}

argumen dengan nilai default dimasukan di akhir argumen. selalu menghasilkan value yang berguna.

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;
}

6. Comment
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

Dokumentasi/catatan di dlm skrip sangat dianjurkan untuk memudahkan kita mengetahui jalan dan alur skrip.

7. Including Code
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.

8. Header Comment
Dianjurkan utk setiap file terdapat informasi header, menggunakan struktur berikut:

/* ---------------------------------------------------------------------------
Copyright (C) 2002 by IDE Development Team.

http://www.ide.or.id

------------------------------------------------------------------------------
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

http://www.gnu.org/copyleft/gpl.html

------------------------------------------------------------------------------
Changelog
2002/05/05:Slamet - minor fix
--------------------------------------------------------------------------- */

About the Author: Dhika Cikul

3 Comments + Add Comment

  • stuju smua kecuali no. 2 (indenting), mnrtku lebih rapi klo pake tab..
    apalagi banyak text editor bagus yg cenderung menggunakan tab drpd spasi

  • Salam kenal
    Terima kasih Tutorialnya. Very Good.

  • mantab…

    Kep coding..

Leave a comment