[ZF-10089] Zend_Log
[zend.git] / documentation / manual / nl / ref / coding_standard.xml
blobcf1312e4a97aec3f6d69639ec47a8e3dd5380c11
1 <appendix id="coding-standard">
2   <title>Zend Framework Programmeer Standaard</title>
4   <sect1 id="coding-standard.overview">
5     <title>Overzicht</title>
7     <sect2 id="coding-standard.overview.scope">
8       <title>Bereik</title>
10       <para>Dit document beschrijft de richtlijnen en
11       hulpmiddelen voor softwareontwikkelaars en teams die programmeren met
12       behulp van of die programmeren op het Zend Framework. De volgende onderwerpen zullen aan de orde komen:</para>
14       <para><itemizedlist>
15           <listitem>
16             <para revisionflag="changed">PHP bestandsformattering</para>
17           </listitem>
19           <listitem>
20             <para revisionflag="changed">Benamingsovereenkomst</para>
21           </listitem>
23           <listitem>
24             <para revisionflag="changed">Codestijl</para>
25           </listitem>
27           <listitem>
28             <para>Inline Documentatie</para>
29           </listitem>
30         </itemizedlist></para>
31     </sect2>
33     <sect2 id="coding-standard.overview.goals">
34       <title>Doelen</title>
36       <para>Goede coderichtlijnen zijn belangrijk in
37       alle ontwikkelingsprojecten, in het bijzonder wanneer meerdere
38       programmeurs aan eenzelfde project werken. De coderichtlijnen spelen een
39       grote rol in het produceren van kwaliteitscode met minder bugs en die
40       gemakkelijker kan worden onderhouden.</para>
41     </sect2>
42   </sect1>
44   <sect1 id="coding-standard.php-file-formatting">
45     <title>PHP Bestandsformattering</title>
47     <sect2 id="coding-standard.php-file-formatting.general">
48       <title>Algemeen</title>
50       <para>Voor bestanden die alleen PHP code bevatten
51       is de sluitende tag ("?&gt;") nooit toegelaten. Die wordt niet geëist
52       door PHP. Het niet schrijven van deze afbakening voorkomt het toevoegen
53       van spaties in de output.</para>
55       <para><emphasis>BELANGRIJK</emphasis>: Toevoegen van binaire gegevens
56       zoals toegelaten door <code>__HALT_COMPILER()</code> is niet toegelaten
57       in eender welk Zend Framework PHP bestand of bestanden die daarvan zijn
58       afgeleid. Het gebruik van deze mogelijkheid is alleen toegelaten in
59       speciale installatie scripts.</para>
60     </sect2>
62     <sect2 id="coding-standard.php-file-formatting.indentation">
63       <title>Indenting</title>
65       <para>Gebruik een indent van 4 spaties, zonder tabulatie</para>
66     </sect2>
68     <sect2 id="coding-standard.php-file-formatting.max-line-length">
69       <title>Maximale regellengte</title>
71       <para>De doellengte voor een regel is 80 tekens,
72       dus ontwikkelaars zouden moeten proberen om zo dicht mogelijk bij de 80
73       kolommengrens te blijven èn praktisch te blijven. Langere regels zijn
74       aanvaardbaar. De maximale lengte voor eender welke regel code in PHP is
75       120 tekens.</para>
76     </sect2>
78     <sect2 id="coding-standard.php-file-formatting.line-termination">
79       <title>Regeleinde</title>
81       <para>Regeleindes worden geschreven volgens de
82       Unix standaard. Regels moeten eindigen op één enkele linefeed (LF). Een
83       linefeed is een ordinal 10, of een hexadecimale 0x0A.</para>
85       <para>Gebruik geen carriage returns (CR) zoals
86       Macintosh computers (0x0D).</para>
88       <para>Gebruik geen carriage return/linefeed
89       combinatie (CRLF) zoals Windows computers (0x0D, 0x0A).</para>
90     </sect2>
91   </sect1>
93   <sect1 id="coding-standard.naming-conventions">
94     <title>Benamingsovereenkomst</title>
96     <sect2 id="coding-standard.naming-conventions.classes">
97       <title>Klassen</title>
99       <para>Het Zend Framework gebruikt een
100       klassebenamingsovereenkomst waarbij de namen van de klassen direct
101       overeenkomen met de mappen waarin ze zijn opgeslagen. De root directory
102       van de Zend Framework is de "Zend" map, waaronder alle klassen
103       hiërarchisch zijn ondergebracht.</para>
105       <para>Klassenamen mogen alleen alfanumerieke tekens bevatten.
106       Nummers zijn toegelaten in klassename maar worden afgeraden. Underscores
107       zijn alleen toegelaten als vervanging van een padscheider -- de
108       bestandsnaam "Zend/Db/Table.php" moet overeenkomen met de klassenaam
109       "Zend_Db_Table".</para>
111       <para>Indien een klassenaam bestaat uit meer dan één woord
112       moet de eerste letter van elk woord een hoofdletter zijn. Opeenvolgende
113       hoofdletters zijn niet toegestaan, bv. een klasse "Zend_PDF" is niet
114       toegestaan terwijl "Zend_Pdf" aanvaardbaar is.</para>
116       <para>Zend Framework klassenamen waarvan Zend of één van de
117       bijdragende partners de auteur is en die met het Framework worden
118       verzonden moeten altijd beginnen met "Zend_" en moeten in de "Zend/" map
119       hiërarchie worden opgeslagen.</para>
121       <para>Dit zijn voorbeelden van aanvaardbare
122       klassenamen:</para>
124       <para><programlisting role="php">Zend_Db
126 Zend_View
128 Zend_View_Helper
129 </programlisting> <emphasis>BELANGRIJK:</emphasis> Code die werkt met het Framework maar er geen
130       deel van is, bv. code geschreven door een Frameworkgebruiker en niet
131       door Zend of één van de Framework partnerbedrijven, mogen nooit
132       beginnen met "Zend_".</para>
133     </sect2>
135     <sect2 id="coding-standard.naming-conventions.interfaces">
136       <title>Interfaces</title>
138       <para>Interface klassen moeten dezelfde overeenkomsten
139       respecteren als andere klassen (zie hierboven), maar moeten bovendien
140       eindigen op het woord "interface", zoals in deze
141       voorbeelden:</para>
143       <para><programlisting role="php">Zend_Log_Adapter_Interface
144 Zend_Controller_Dispatcher_Interface</programlisting></para>
145     </sect2>
147     <sect2 id="coding-standard.naming-conventions.filenames">
148       <title>Bestandsnamen</title>
150       <para>Voor alle andere bestanden zijn alleen alfanumerieke
151       tekens, underscores en het min teken ("-") toegestaan. Spaties zijn
152       verboden.</para>
154       <para>Elk bestand dat PHP code bevat moet eindigen op de
155       extensie ".php". Deze voorbeelden tonen aanvaardbare bestandsnamen voor
156       bestanden die klassen bevatten uit de voorbeelden in de vorige
157       sectie:</para>
159       <para><programlisting role="php">Zend/Db.php
161 Zend/Controller/Front.php
163 Zend/View/Helper/FormRadio.php</programlisting> Bestandsnamen moeten de
164       overeenkomst met de klassenamen respecteren, zoals hierboven
165       beschreven.</para>
166     </sect2>
168     <sect2 id="coding-standard.naming-conventions.functions-and-methods">
169       <title>Functies en methodes</title>
171       <para>Functienamen mogen alleen alfanumerieke tekens bevatten.
172       Underscores zijn niet toegestaan. Nummers zijn toegestaan in
173       functienamen maar worden afgeraden.</para>
175       <para>Functienamen moeten altijd met een kleine letter
176       beginnen. Indien een functienaam bestaat uit meer dan één woord, moet de
177       eerste letter van elk nieuw woord een hoofdletter zijn. Dit wordt
178       de "studlyCaps" of "camelCaps" methode
179       genoemd.</para>
181       <para>Langsprekendheid wordt aangeraden. Functienamen zouden
182       zoveel woorden moeten bevatten als praktisch is om het begrijpen van de
183       code te vergemakkelijken.</para>
185       <para>Dit zijn voorbeelden van aanvaardbare
186       functienamen: <programlisting role="php">filterInput()
188 getElementById()
190 widgetFactory()</programlisting></para>
192       <para>Voor objectgeoriënteerd programmeren zouden
193       databenaderingsmethodes altijd met "get" of "set" moeten worden
194       voorafgegaan. Bij het gebruik van ontwerppatronen, zoals het singleton
195       of factory patroon, zou de naam van de methode de patroonnaam moeten
196       bevatten indien mogelijk. Dit om het gebruik van het patroon
197       gemakkelijker herkenbaar te maken.</para>
199       <para>Functies in het globale bereik ("drijvende
200       functies") zijn toegestaan maar afgeraden. Het is aanbevolen deze
201       functies in een statische klasse te wikkelen.</para>
202     </sect2>
204     <sect2 id="coding-standard.naming-conventions.variables">
205       <title>Variabelen</title>
207       <para>Namen van variabelen mogen alleen bestaan uit alfanumerieke
208       tekens. Underscores zijn niet toegestaan. Nummers zijn toegestaan maar
209       worden afgeraden.</para>
211       <para>Voor eigenschappen die verklaard worden met het "private" of
212       "protected" concept moet het eerste teken van de functienaam een
213       enkele underscore zijn. Dit is het enige aanvaardbare gebruik van de
214       underscore in een functienaam. Eigenschappen verklaard als "public" mogen
215       nooit met een underscore beginnen.</para>
217       <para>Zoals functienamen (zie sectie 3.3, hierboven) moeten
218       namen van variabelen altijd met een kleine letter beginnen en volgen ze de
219       "camelCaps" behoofdletteringsovereenkomst.</para>
221       <para>Langsprekendheid is aangeraden. Variabelen zouden zoveel
222       woorden moeten bevatten als praktisch is. Beknopte variabelnamen zoals
223       "$i" en "$n" worden afgeraden voor alles behalve de kleinst mogelijke
224       loops. Als een loop meer dan 20 coderegels bevat, moeten de index
225       variabelen meer beschrijvende namen hebben.</para>
226     </sect2>
228     <sect2 id="coding-standard.naming-conventions.constants">
229       <title>Constanten</title>
231       <para>Namen voor constanten mogen zowel alfanumerieke tekens
232       als de underscore bevatten. Nummers zijn toegelaten in
233       constantnamen.</para>
235       <para>constantnamen moeten altijd alleen bestaan uit
236       hoofdletters wat de alfanumerieke tekens betreft.</para>
238       <para>Constanten moeten worden gedefinieerd als klasseleden
239       door het concept "const" te gebruiken. Constanten verklaren in het
240       globale bereik met "define" is toegelaten maar wordt afgeraden.</para>
241     </sect2>
242   </sect1>
244   <sect1 id="coding-standard.coding-style">
245     <title>Codestijl</title>
247     <sect2 id="coding-standard.coding-style.php-code-demarcation">
248       <title>PHP Code Afbakening</title>
250       <para>PHP code moet altijd worden afgebakend met de volledige standaard PHP
251       markeringen: <programlisting role="php">
252 &lt;?php
254 ?&gt;</programlisting></para>
256       <para>Korte markeringen zijn nooit toegelaten</para>
257     </sect2>
259     <sect2 id="coding-standard.coding-style.strings">
260       <title>Strings</title>
262       <sect3 id="coding-standard.coding-style.strings.literals">
263         <title>String Literals</title>
265         <para>Wanneer een string letterlijk is (hij bevat geen variabelvervanging),
266         moet altijd de apostroof of "enkele quote" gebruikt worden om de string
267         af te bakenen: <programlisting role="php">
268 $a = 'Voorbeeld String';</programlisting></para>
269       </sect3>
271       <sect3 id="coding-standard.coding-style.strings.literals-containing-apostrophes">
272         <title>Letterlijke strings die apostrofen bevatten</title>
274         <para>Wanneer een letterlijke string zelf apostrofen bevat is het
275         toegelaten de string af te bakenen met aanhalingstekens ("double
276         quotes"). Dit is dringend aangeraden voor SQL verklaringen:
277         <programlisting role="php">
278 $sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";</programlisting>
279         De bovenstaande syntax is verkozen boven het "escapen" van de apostrofen.</para>
280       </sect3>
282       <sect3 id="coding-standard.coding-style.strings.variable-substitution">
283         <title>Variabelvervanging</title>
285         <para>Variabelvervanging is toegestaan met respect voor de volgende vormen: <programlisting role="php">
286 $greeting = "Hello $name, welcome back!";
288 $greeting = "Hello {$name}, welcome back!";</programlisting></para>
290         <para>Om uniformiteit te respecteren is deze vorm niet toegestaan: <programlisting
291         role="php">
292 $greeting = "Hello ${name}, welcome back!";</programlisting></para>
293       </sect3>
295       <sect3 id="coding-standard.coding-style.strings.string-concatenation">
296         <title>String samenvoeging</title>
298         <para>Strings kunnen samengevoegd worden met de "." operator. Er moet steeds een spatie
299         vòòr en na de "." operator worden ingevoegd om de leesbaarheid te verbeteren: <programlisting role="php">
300 $company = 'Zend' . 'Technologies';</programlisting></para>
302         <para>Wanneer men strings samenvoegt met de "." operator is het toegelaten
303         de verklaring in meerdere regels op te breken om de leesbaarheid te vergroten.
304         In dat geval moet elke opeenvolgende regel met spaties worden opgevuld zodat
305         de "." operator uitgelijnd is onder de "=" operator: <programlisting role="php">
306 $sql = "SELECT `id`, `name` FROM `people` "
307      . "WHERE `name` = 'Susan' "
308      . "ORDER BY `name` ASC ";</programlisting></para>
309       </sect3>
310     </sect2>
312     <sect2 id="coding-standard.coding-style.arrays">
313       <title>Arrays</title>
315       <sect3 id="coding-standard.coding-style.arrays.numerically-indexed">
316         <title>Numeriek Geïndexeerde Arrays</title>
318         <para>Negatieve nummers zijn verboden voor indexen.</para>
320         <para>Een geïndexeerde array mag starten met eender welk niet negatief nummer.
321         Dit wordt evenwel afgeraden. Het is aangeraden dat alle arrays een
322         basisindex van 0 hebben.</para>
324         <para>Wanneer men een geïndexeerde array definieert met het <code>array</code>
325         concept moet er een spatie worden ingevoegd na elke komma afbakening om
326         de leesbaarheid te verbeteren: <programlisting role="php">
327 $sampleArray = array(1, 2, 3, 'Zend', 'Studio');</programlisting></para>
329         <para>Het is ook toegelaten om een geïndexeerde array op meerdere
330         regels te definieren. In dat geval moet elke opeenvolgende regel met spaties
331         worden opgevuld zodanig dat het begin van elke regel als volgt is uitgelijnd:
332         <programlisting role="php">
333 $sampleArray = array(1, 2, 3, 'Zend', 'Studio',
334                      $a, $b, $c,
335                      56.44, $d, 500);</programlisting></para>
336       </sect3>
338       <sect3 id="coding-standard.coding-style.arrays.associative">
339         <title>Associatieve Arrays</title>
341         <para>Wanneer men associatieve arrays met het <code>array</code>
342         concept definieert is het aangeraden de verklaring in meerdere regels op te
343         breken. In dat geval moet elke opeenvolgende regel met spaties worden
344         opgevuld zodat de indexen (keys) en waarden (values) uitgelijnd zijn:
345         <programlisting role="php">
346 $sampleArray = array('firstKey'  =&gt; 'firstValue',
347                      'secondKey' =&gt; 'secondValue');</programlisting></para>
348       </sect3>
349     </sect2>
351     <sect2 id="coding-standard.coding-style.classes">
352       <title>Klassen</title>
354       <sect3 id="coding-standard.coding-style.classes.declaration">
355         <title>Klasse Verklaring</title>
357         <para>Klassebenaming moet de volgende overeenkomsten volgen.</para>
359         <para>De accolade wordt steeds op de regel onder de klassenaam geschreven
360         ("one true brace" vorm).</para>
362         <para>Elke klasse moet een documentatieblok hebben dat de PHPDocumentor
363         standaard volgt.</para>
365         <para>Code in een klasse moet geïndenteerd zijn met vier spaties.</para>
367         <para>Eén klasse, éen bestand.</para>
369         <para>Bijkomende code schrijven in een klassebestand is toegelaten maar wordt
370         afgeraden. Indien men het toch doet moet de bijkomende code met twee lege
371         regels worden gescheiden van de klassecode.</para>
373         <para>Dit is een voorbeeld van een aanvaardbare klasseverklaring:
374         <programlisting role="php">
376  * Documentatie Blok Hier
377  */
378 class SampleClass
380     // de gehele inhoud van de klasse
381     // moet geindenteerd worden met vier spaties
382 }</programlisting></para>
383       </sect3>
385       <sect3 id="coding-standard.coding-style.classes.member-variables">
386         <title>Klasse lidvariabelen</title>
388         <para>Lidvariabelen moeten benaamd worden volgens de variabele
389         benamingsovereenkomst.</para>
391         <para>Variabelen die in de klasse worden verklaard moeten bovenaan
392         in de klasse worden opgesomd, vòòrdat functies worden verklaard.</para>
394         <para>Het concept <code>var</code> is niet toegestaan. Lidvariabelen
395         moeten steeds hun zichtbaarheid verklaren door één van de <code>private</code>,
396         <code>protected</code>, of <code>public</code> concepten te gebruiken.
397         Toegang verlenen aan lidvariabelen door hen publiek te maken is toegestaan
398         maar wordt afgeraden ten voordele van de databenaderingsmethodes (set/get).</para>
399       </sect3>
400     </sect2>
402     <sect2 id="coding-standard.coding-style.functions-and-methods">
403       <title>Functies en Methodes</title>
405       <sect3 id="coding-standard.coding-style.functions-and-methods.declaration">
406         <title>Functie en Methode Verklaring</title>
408         <para>Functiebenaming moet de benamingsovereenkomsten volgen.</para>
410         <para>Functies binnen klasses moeten steeds hun zichtbaarheid verklaren
411         door één van de <code>private</code>, <code>protected</code>, of
412         <code>public</code> concepten te gebruiken.</para>
414         <para>Net zoals klassen, moet de accolade steeds op de regel onder de functienaam
415         worden geschreven ("one true brace" vorm). Er is geen spatie tussen de functienaam
416         en de haakjes voor de argumenten. Er is één spatie tussen de sluitende haakjes en de
417         accolade.</para>
419         <para>Functies in het globale bereik zijn zeer sterk afgeraden.</para>
421         <para>Dit is een voorbeeld van een aanvaardbare verklaring van een functie in een klasse:
422         <programlisting role="php">
424  * Documentatie blok hier
425  */
426 function sampleMethod($a)
428     // de gehele inhoud van de functie
429     // moet geindenteerd worden met vier spaties
430 }</programlisting></para>
432         <para><emphasis>NOTA:</emphasis> Doorgeven per verwijzing (pass by reference) is
433         alleen toegestaan in de functieverklaring: <programlisting role="php">
434 function sampleMethod(&amp;$a)
435 {}</programlisting></para>
437         <para>Call-time pass by reference is verboden.</para>
439         <para>De terugkeerwaarde mag niet tussen haakjes worden ingesloten.
440         Dat kan de leesbaarheid hinderen en kan ook de code breken indien een
441         methode later wordt veranderd om per verwijzing terug te sturen.
442         <programlisting role="php">
443 function foo()
445     // FOUT
446     return($this-&gt;bar);
448     // GOED
449     return $this-&gt;bar;
450 }</programlisting></para>
451       </sect3>
453       <sect3 id="coding-standard.coding-style.functions-and-methods.usage">
454         <title>Functie- en Methodegebruik</title>
456         <para>Functie-argumenten worden gescheiden door één enkele spatie
457         na de komma afbakening. Dit is een voorbeeld van een aanvaardbare
458         functie-aanroep voor een functie die drie argumenten heeft:
459         <programlisting role="php">
460 threeArguments(1, 2, 3);</programlisting></para>
462         <para>Call-time pass by reference is verboden. Zie de sectie over
463         functieverklaringen voor de juiste wijze om argumenten per verwijzing door te
464         sturen.</para>
466         <para>Voor functies welke arrays als argument aanvaardden mag de
467         functieaanroep het "array" concept bevatten en kan deze in meerdere
468         regels worden opgesplitst om de leesbaarheid te vergroten.
469         In deze gevallen blijven de regels voor het schrijven van arrays van
470         kracht: <programlisting role="php">
471 threeArguments(array(1, 2, 3), 2, 3);
473 threeArguments(array(1, 2, 3, 'Zend', 'Studio',
474                      $a, $b, $c,
475                      56.44, $d, 500), 2, 3);</programlisting></para>
476       </sect3>
477     </sect2>
479     <sect2 id="coding-standard.coding-style.control-statements">
480       <title>Control Statements</title>
482       <sect3 id="coding-standard.coding-style.control-statements.if-else-elseif">
483         <title>If / Else / Elseif</title>
485         <para>Control statements gebaseerd op <code>if</code> en
486         <code>elseif</code> concepten moeten een enkele spatie voor de openende
487         haakjes van de conditie, en een enkele spatie na de sluitende haakjes.</para>
489         <para>In de voorwaardeverklaringen tussen de haakjes moeten
490         operators gescheiden worden met spaties om de leesbaarheid te
491         bevorderen. Binnenhaakjes zijn aangeraden voor het groeperen van
492         meer complexe voorwaarden.</para>
494         <para>De openingsaccolade wordt op dezelfde regel als de
495         voorwaardeverklaring geschreven. De sluitende accolade wordt altijd op
496         een alleenstaande regel geschreven. Alle inhoud binnenin de accolades
497         moet steeds met vier spaties geïndenteerd worden.
498         <programlisting role="php">
499 if ($a != 2) {
500     $a = 2;
501 }</programlisting></para>
503         <para>Voor "if" verklaringen die "else if" of "else" inhouden moet de vorm
504         zoals in de volgende voorbeelden zijn: <programlisting role="php">
505 if ($a != 2) {
506     $a = 2;
507 } else {
508     $a = 7;
512 if ($a != 2) {
513     $a = 2;
514 } else if ($a == 3) {
515     $a = 4;
516 } else {
517     $a = 7;
518 }</programlisting> PHP laat het toe om in bepaalde gevallen deze verklaringen zonder
519         accolades te schrijven. De codestandaard maakt geen verschil en alle "if",
520         "else if" of "else" verklaringen moeten accolades gebruiken.</para>
522         <para>Het gebruik van "elseif" is toegestaan maar "else if" wordt sterk
523         aanbevolen.</para>
524       </sect3>
526       <sect3 id="coding-standards.coding-style.control-statements.switch">
527         <title>Switch</title>
529         <para>Control statements geschreven met "switch" moeten een enkele spatie
530         voor de openende haakjes van de voorwaardeverklaring hebben, en een enkele
531         spatie na de sluitende haakjes.</para>
533         <para>Alle inhoud binnen een "switch" verklaring moet met vier spaties
534         geïndenteerd worden. Inhoud onder elke "case" moet geïndenteerd worden
535         met vier extra spaties.</para>
537         <programlisting role="php">
538 switch ($numPeople) {
539     case 1:
540         break;
542     case 2:
543         break;
545     default:
546         break;
547 }</programlisting>
549         <para><code>default</code> mag nooit weggelaten worden van een
550         <code>switch</code> verklaring.</para>
552         <para><emphasis>NOTA:</emphasis> Het is soms handig een <code>case</code>
553         verklaring te hebben die doorvalt naar de volgende <code>case</code>
554         verklaring door het weglaten van <code>break</code> of <code>return</code>
555         in de verklaring. Om deze gevallen van bugs te onderscheiden moet elk
556         van de gevallen waarin een <code>break</code> of <code>return</code>
557         wordt weggelaten een commentaar "// break intentionally omitted"
558         bevatten.</para>
559       </sect3>
560     </sect2>
562     <sect2 id="coding-standards.inline-documentation">
563       <title>Inline Documentatie</title>
565       <sect3 id="coding-standards.inline-documentation.documentation-format">
566         <title>Documentatie Formaat</title>
568         <para>Alle documentatieblokken ("docblocks") moeten compatibel zijn
569         met het phpDocumentor formaat. Een beschrijving van het
570         phpDocumentor formaat is buiten het bereik van dit document.
571         Voor meer informatie kunt u terecht op: <ulink
572         url="http://phpdoc.org/">http://phpdoc.org"</ulink></para>
574         <para>Alle broncodebestanden geschreven voor het Zend Framework of dat
575         ermee samenwerkt moet een "file-level" docblock bevatten aan het begin
576         van elk bestand en een "class-level" docblock onmiddellijk boven elke
577         klasse. Hierna enkele voorbeelden van zulke docblocks.</para>
578       </sect3>
580       <sect3 id="coding-standards.inline-documentation.files">
581         <title>Bestanden</title>
583         <para>Elk bestand dat PHP code bevat moet een hoofdblok aan het
584         begin van het bestand bevatten dat minstens de volgende
585         phpDocumentor gegevens bevat: <programlisting role="php">
587  * Korte beschrijving van het bestand
589  * Lange beschrijving van het bestand (indien aanwzeig)...
591  * LICENSE: Licentie informatie
593  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
594  * @license    http://www.zend.com/license/3_0.txt   PHP License 3.0
595  * @version    $Id:$
596  * @link       http://dev.zend.com/package/PackageName
597  * @since      File available since Release 1.2.0
598 */</programlisting></para>
599       </sect3>
601       <sect3 id="coding-standards.inline-documentation.classes">
602         <title>Klassen</title>
604         <para>Elke klasse moet een docblock bevatten dat minstens
605         de volgende phpDocumentor gegevens bevat: <programlisting role="php">
607  * Korte beschrijving van de klasse
609  * Lange beschrijving van de klasse (indien aanwezig)...
611  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
612  * @license    http://www.zend.com/license/3_0.txt   PHP License 3.0
613  * @version    Release: @package_version@
614  * @link       http://dev.zend.com/package/PackageName
615  * @since      Class available since Release 1.2.0
616  * @deprecated Class deprecated in Release 2.0.0
617  */</programlisting></para>
618       </sect3>
620       <sect3 id="coding-standards.inline-documentation.functions">
621         <title>Functies</title>
623         <para>Elke functie, methodes inbegrepen, moet een docblock hebben
624         dat minstens het volgende bevat: <itemizedlist>
625             <listitem>
626               <para>Een beschrijving van de functie</para>
627             </listitem>
629             <listitem>
630               <para>Alle argumenten</para>
631             </listitem>
633             <listitem>
634               <para>Alle mogelijke terugwaarden</para>
635             </listitem>
636           </itemizedlist></para>
638         <para>Het is niet nodig om de "@access" tags te gebruiken
639         want de zichtbaarheid is reeds bekend via het gebruik van
640         "public", "private", of "protected" bij het verklaren van de
641         functie.</para>
643         <para>Indien een functie of methode een exception mag teruggeven,
644         gebruik @throws:
645         <programlisting role="php">
646 @throws exceptionClass [beschrijving]
647 </programlisting></para>
648       </sect3>
649     </sect2>
650   </sect1>
651 </appendix>
652 <!--
653 vim:se ts=4 sw=4 et: