Netjes scripten
Het einde van deze tutorial begint in zicht te komen. Er zijn echter nog een paar zaken waaraan ik aandacht wil besteden. Deze laatste twee hoofdstukken zullen in het tekenstaan van de manier waarop je scripts op bouwt en het oplossen van fouten in een script aan de hand van foutmeldingen (debuggen).
Het netjes opbouwen van je PHP scripts is belangrijk. Allereerst omdat je zo het overzicht over je code behoudt. Vooral naarmate je code langer wordt, kan hij wel eens heel overzichtelijk worden als je niet op een nette manier script. Daarnaast zullen we zien dat het oplossen van fouten veel makkelijker wordt als je scripts netjes opgebouwd zijn.
Inspringen
Een eenvoudige methode om je code overzichtelijk te houden is door op vaste plaatsen en consequent in te springen. Kijk eens naar het volgende stukje code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$aErrors = array();
$aData = array();
foreach($_POST as $sKey => $sValue){
$sValue = trim($sValue);
if(empty($sValue)){
$aErrors[] = 'Je bent vergeten om '.$sKey.' in te vullen';
}
$aData[$sKey] = $sValue;
}
if(empty($aErrors)){
echo '<p>Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:</p>';
echo '<p>Voornaam: '.$aData['voornaam'].'<br />';
echo 'Achternaam: '.$aData['achternaam'].'</p>';
}else{
header('Refresh: 3; url=formulier.php');
foreach($aErrors as $sError){
echo '<p style="color:red">'.$sError.'</p>';
}
}
}
?>
Dit is een werkend stukje code en als we goed kijken zien we dat dit een deel uit het verwerkingsscript van ons eerste formulier is. Alleen heb ik nu alle 'overbodig' tabs en enters uit het script gehaald. Vergelijk dit nu eens met de originele code:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Arrays declareren voor opslag van fouten en data
$aErrors = array();
$aData = array();
// Waarden uit de $_POST array doorlopen
foreach($_POST as $sKey => $sValue)
{
// Spaties aan begin en eind weghalen
$sValue = trim($sValue);
// Controle of variabele gevuld is
if(empty($sValue))
{
// Foutmelding toevoegen
$aErrors[] = 'Je bent vergeten om '.$sKey.' in te vullen';
}
// Ingevulde waarden aan data array toevoegen
$aData[$sKey] = $sValue;
}
// Controleren of er geen fouten opgetreden zijn
if(empty($aErrors))
{
// Formulier succes!
echo '<p>Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:</p>';
echo '<p>Voornaam: '.$aData['voornaam'].'<br />';
echo 'Achternaam: '.$aData['achternaam'].'</p>';
}
else
{
// Fouten opgetreden: weergeven en terug naar formulier
header('Refresh: 3; url=formulier.php');
foreach($aErrors as $sError)
{
echo '<p style="color:red">'.$sError.'</p>';
}
}
}
?>
Volgens mij kun je niet anders dan het met me eens zijn, dat dit een stuk duidelijker en overzichtelijker is. Dit wordt voornamelijk veroorzaakt door het op een consequente manier inspringen. De manier die ik altijd gebruik is de volgende:
Een andere standaard die ook veel gebruikt wordt is de volgende:
Deze methode is korter maar vind ik persoonlijk minder fijn werken. De keuze van de manier van inspringen is heel persoonlijk en je hoeft je ook niet per se aan een algemene standaard te houden. Het belangrijkste is dat je 1 methode kiest en die vervolgens consequent toepast.
Ook als je stukjes code kopieert (wat ik zelf ook regelmatig doe), verander dan de layout ervan naar je eigen methode, zodat de code netjes in de rest van je script pas.
Commentaar
Ik heb het al eerder in deze tutorial gezegd, maar het toevoegen van commentaar is ook belangrijk om het overzicht te behouden. Niet alleen voor anderen maar ook voor jezelf. Vooral als je code langer wordt is het belangrijk om commentaar toe te voegen aan de verschillende elementen in je code. Op die manier weten anderen en jijzelf later nog wat de functie van een bepaald onderdeel ook alweer was.
Zorg dat je commentaar op nuttige plaatsen toepast, te veel is namelijk ook niet goed. Ga dus niet aan elk if en else statementje een regel commentaar toevoegen als de functie ervan ook zonder commentaar duidelijk is. Dit zal er alleen maar voor zorgen dat je code weer onoverzichtelijker wordt, en dat moet je zien te voorkomen.
Inhoudsopgave
- Inleiding
- Mijn eerste PHP script
- Variabelen
- Statements
- Loops
- Arrays
- Functies
- Formulieren
- Superglobals
- Sessies nader bekeken: een eerste loginscript
- Netjes scripten
- Debuggen: het oplossen van PHP fouten
- Slotwoord en referenties