Code Conventie
Inhoud PHP algemeen ............................................................................................................. 3 Namen van variabelen ............................................................................................... 3 Enkele of dubbele aanhalingstekens ............................................................................ 3 Globale variabelen .................................................................................................... 3 Namen van functies .................................................................................................. 3 Argumenten van functies ........................................................................................... 3 Formattering ............................................................................................................... 4 Accolades { } ........................................................................................................... 4 Als – dan – anders / switch ........................................................................................ 4 Boolean ................................................................................................................... 5 De identieke operator ................................................................................................ 5 Commentaren .......................................................................................................... 5 PHP tags.................................................................................................................. 5 Algemeen ................................................................................................................ 5 Classes ....................................................................................................................... 7 Naam van een class .................................................................................................. 7 Naam van een methode en een functie ........................................................................ 7 Attributen van een class ............................................................................................ 7 Argumenten van een methode .................................................................................... 7 Queries....................................................................................................................... 8 Javascript ................................................................................................................... 9 Functies .................................................................................................................. 9 Framework .............................................................................................................. 9 HTML ....................................................................................................................... 10 Doctype................................................................................................................. 10 Digital Mind special..................................................................................................... 12 Websitestructuur .................................................................................................... 12 Extra afspraken ...................................................................................................... 12 Algemeen gebruikte scripts ...................................................................................... 13
Pagina 2 van 13
PHP algemeen Namen van variabelen 9 9
De eerste letter is een kleine letter Alle woorden na de eerste letter moeten beginnen met een hoofdletter Regels: • Labels • Arrays • Pdf • Images • Combo & list • SSQL • SRunSQL • Error • Text • Help • Object
lbl arr pdf img lst qry rqry err txt hlp obj
lblName arrUsers pdfInvoice imgFolder lstCountry qryAddress rqryAddress errNoUser txtInfo hlpActiveField objClass (behalve bovengenoemde)
Enkele of dubbele aanhalingstekens 9
Gebruik altijd dubbele aanhalingstekens Voorbeelden: • echo “Firstname \n”; • echo “Dit is een variabele “.$variabele; • echo “
”;
Globale variabelen 9
Alles in hoofdletters met een liggend streepje (_) als scheiding Voorbeelden: • Define(“CONSTANT”,”Hello World”); • Define(“CONSTANT_VARIABLE”,”Hello World”);
Namen van functies 9 9
De naam moet duidelijk maken wat het doet (ErrorOutput(), SetOnClick()) Als er een woord is waar men alles in hoofdletters kan schrijven, niet doen. Voorbeeld: FOUT : GetHTMLStatistics JUIST : GetHtmlStatistics
Argumenten van functies 9 9 9
De eerste letter is een kleine letter Alle woorden na de eerste letter moeten beginnen met een hoofdletter zoals de naam van een class Neem de regels voor de voorvoegsels in acht (txt, lbl, …) Voorbeeld: • GetUserSettings($txtFirstName, $arrLastName);
Pagina 3 van 13
Formattering Accolades { } 9 9 9
Eerste accolade begint op een nieuwe lijn, laatste eindigt op een nieuwe lijn Spring in waar nodig om de leesbaarheid te bevorderen Inspringen = 4 spaties (afhankelijk van het programma – voor Zend = 1 tab) if ($condition) { … } while ($condition) { … } for ($i = 0;$i < 10;$i++) { … } foreach ($var as $k => $v) { … }
9
Als de “if” of de “else” accolades nodig heeft, dan moet het bij de andere ook gebruikt worden. if ($condition) $a = $b; else $a = $c;
Als – dan – anders / switch if ($condition) { … } elseif ($condition) { … } else { … } ($condition)?funct1:funct2; 9
Als de if structuur complex wordt, schakel dan liever over naar een switch statement switch($var) { case 1: … break; Pagina 4 van 13
case 2: … break;
}
default: … break;
Boolean Controle op true of false van een functie Voorbeelden: • if (record_exists()) • if (!record_exists())
De identieke operator 9
Als we deze operator gebruiken zal er enkel worden aangegeven dat 2 variabelen hetzelfde zijn als ze dezelfde waarde hebben en van hetzelfde type zijn. Voorbeeld: if(strpos($myvar,”X”) === false) //X is niet in $myvar { … }
Commentaren 9 9 9
Probeer // te gebruiken ipv /* */ Voor vaste commentaren is het handig om //-- te gebruiken, dan valt het direct op In Zend: // : ctrl + / /* */: ctrl + shift + /
PHP tags 9 9
Gebruik , niet PHP tag niet afsluiten
Algemeen 9 9 9
Spatie tussen de if/while/foreach/… en de voorwaarde Een spatie voor en na alle operatoren (=, <, >, =>, …) Een spatie na elke “,” en “;”
9
Na een header redirect altijd die() zetten
9
Niet testen met nummers, eerder met variabelen $categoryno = 14; if($categoryno > $testno) { … }
Pagina 5 van 13
ipv if(14 > $testno) { … } 9
Als een tabel wordt opgeslaan in een variabele, moet er ook een uitlijning gebeuren: Voorbeeld: $var = “\n”; Voor Zend-gebruikers Bij het gebruik van de toetsencombinatie ctrl + shift + F wordt de PHP code automatisch uitgelijnd vanaf de tag waar PHP wordt geopend (
Pagina 6 van 13
Classes Naam van een class 9 9 9 9
Hoofdletters als eerste letter van een nieuw woord, de rest kleine letters Eerste letter van het woord is een hoofdletter Geen liggend streepje (_) tussen de woorden Naam van een class begint met een S Voorbeelden: • clsHeader • clsDatabase • clsQueryGenerator
Naam van een methode en een functie 9 9 9 9 9
Hoofdletters als eerste letter van een nieuw woord, de rest kleine letters Eerste letter van het woord is een hoofdletter Geen liggend streepje (_) tussen de woorden De naam moet duidelijk maken wat het doet (ErrorOutput(), SetOnClick()) Als er een woord is waar men alles in hoofdletters kan schrijven, niet doen. Voorbeelden: • GetTotal() • BuildWhereClause • •
FOUT : GetHTMLStatistics JUIST : GetHtmlStatistics
Attributen van een class 9 9 9
Hoofdletters als eerste letter van een nieuw woord, de rest kleine letters Eerste letter van het woord is een hoofdletter Geen liggend streepje (_) tussen de woorden Voorbeeld: • $TotalAmount
Argumenten van een methode 9 9 9
Hoofdletters als eerste letter van een nieuw woord, de rest kleine letters Eerste letter van het woord is een kleine letter Neem de regels voor de voorvoegsels in acht (txt, lbl, …) Voorbeeld: • $intTotalAmount
Pagina 7 van 13
Queries 9
Alle gereserveerde woorden met hoofdletters Voorbeeld: • SUM() • CONCAT() • SELECT • …
9
Als we een alias aan een tabel geven of aan een kolomnaam, dan moet er het woord “AS” tussenstaan in hoofdletter. Voorbeeld: • SELECT * FROM address AS a • SELECT lastname AS name FROM address
9
Als er met meerdere tabellen wordt gewerkt met joins, dan moet er voor elke kolomnaam een alias staan. Voorbeeld: • SELECT a.lastname, ac.countryname FROM address AS a INNER JOIN address_country AS ac ON a.countrycode = ac.countrycode
9
De queries worden niet op 1 lange regel geschreven, maar uitgelijnd (vanaf 1 join) Voorbeeld: SELECT t.itemno, t.projectno, p.projecttitle FROM timemanagement AS t LEFT JOIN project AS p ON t.projectno = p.projectno WHERE t.itemdate <> 0 ORDER BY t.itemdate
9
Update queries worden op 1 regel geschreven. Insert queries worden op meerdere regels geschreven. Als er gebruik gemaakt wordt van een select, dan gelden de regels voor een select statement (zie boven). Voorbeeld: INSERT INTO address (addresscode, lastname) VALUES (‘$addresscode’, ‘$lastname’); UPDATE address SET addresscode = ‘$addresscode’ WHERE addressno = $addressno; INSERT INTO address (addresscode, lastname) SELECT addresscode, lastname FROM address_tmp WHERE addressno > 1000; INSERT INTO address (addresscode, lastname) SELECT a.addresscode, a.lastname FROM address_tmp AS a INNER JOIN address_tmp AS a2 ON a.parentaddressno = a2.addressno WHERE a2.addressno = 5
Pagina 8 van 13
Javascript Functies 9 9 9
Hoofdletters als eerste letter van een nieuw woord, de rest kleine letters Eerste letter van het woord is een kleine letter Geen liggend streepje (_) tussen de woorden Voorbeelden: • goToUrl
Framework 9
Als framework zullen we gebruik maken van Prototype al dan niet in combinatie met Scriptaculous (naar behoefte).
Pagina 9 van 13
HTML Doctype Tot nu toe werd er vooral gewerkt met DOCTYPE Dit zouden we willen veranderen en vanaf nu gebruiken. Belangrijke aanpassingen in de code: 9
Alle tags moeten worden afgesloten. Voor “/>” best een spatie zetten. Voorbeeld: FOUT: Dit is een test. JUIST:
Dit is een test
FOUT: JUIST: FOUT:
,
, … JUIST:
,
, …
9
Alle tags en attributen worden geschreven in kleine letters Voorbeeld: FOUT: Dit is een test
JUIST: Dit is een test
9
De elementen moeten op de juiste manier worden genest. Bij HTML was het nog mogelijk op de foutieve manier te nesten. Voorbeeld: FOUT: Dit is een test JUIST: Dit is een test
9
Geen Block elementen in een inline element Voorbeeld: FOUT: <span> JUIST: <span>
9 9 9
XHTML documenten moeten binnen een …root element staan. DOCTYPE altijd in hoofdletters geschreven! Er moeten dubbele aanhalingstekens staan rond de waarden van een attribuut. Voorbeeld: FOUT: