måndag 19 oktober 2009

Kodstandard för PHP

(uppdaterad 2010-10-31)

Alla som kodat i grupp, eller läst någon annans kod, förstår vikten av kodstandard. Ett antal regler och riktlinjer som anger hur man döper variabler, funktioner, klasser och metoder samt var måsvingarna skall finnas och hur man tabbar in koden.

Vikten av kodstandard går inte underskatta.

Olika språk har olika kodstandard, olika företag likaså. Nedan finns länkar till 3 olika siter som visar varianter av kodstandard för PHP. Lär dig en och använd den. Sedan är det inte så svårt att anamma en annan vid behov.

http://framework.zend.com/manual/en/coding-standard.html
http://pear.php.net/manual/en/standards.php
http://drupal.org/coding-standards
http://www.dagbladet.no/development/phpcodingstandard/

Den kod vi jobbar med i kurserna är delvis influerad av en kodstandard som användes av UIQ Technology AB. Där gällde det C++ men det fungerar lika bra på PHP. Nedan följer ett par uttdrag av denna kodstandard.

Namngivning av klasser, metoder, medlemsvariabler och funktioner
Variabelnamn startar med liten bokstav. Bryt av med stor bokstav vid längre namn.

$key
$keyToCurrent
Funktioner startar med liten bokstav.
addNewCard()
printPage()
Argument till funktioner startar med litet a.
addNewCard($aCard)
printPage($aText)
Klassnamn startar med C.
CCard
CDeck
Namn på medlemsvariabler startar med i.
iDeckSize
iTypeOfDeck
Det är okey att namnge medlemsvariabler på utan prefix i. De startar då med små bokstäver.

Metodnamn i en klass börjar med stor bokstav.
DealCard()
ShuffleDeck()
Namngivning av filer
Klassfiler heter samma som klassens namn + filändelse.


CCard.php
CDeck.php

Filer som enbart innehåller funktioner startar på F.

FCommonFunctions.php


Filer som är tänkta att inkluderas (och exekveras) startar på I.

ISessionDestroy.php

Intendering och måsvingar
Intendera koden med tab, använd 2 space per tabb. (Läs hur många space per tab)

Måsvinge anges på samma rad som start av funktionen, metoden, loopen, etc samt ensam på sista raden.
myFunction() {
 /* some nice code */
}
Använd alltid måsvingar, även om loopen/if-satsen endast innehåller ett statement.

Kommentarer
Använd // för kommentarer i filhuvud och för att separarer delar av koden.
Det blir då möjligt att använda /* */ för att kommentera bort en större kodmassavilket är bra vid felsökning.

Använd kommentarer som avdelare ovanför funktioner, metoder, klasser och övriga fristående delar av koden. Det underlättar när läsaren kollar i koden och försöker hitta delar av den. Raden med streck bör vara 75 tecken lång.

// --------------------------------
//
// Common header
//

Se följande länk som exempel.
http://github.com/mosbth/Greco/blob/master/common.php

Använda inte PHP-sluttag

Om koden i filen enbart är PHP-kod så är det ok (rekommenderat) att ej använda PHP sluttag.

http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html

Formattering av filer
Använd Unix style för linefeed i filerna. Ej Windows style.

Inga kommentarer:

Skicka en kommentar