| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654 |
- <appendix id="coding-standard">
- <title>Zend Framework Programmeer Standaard</title>
- <sect1 id="coding-standard.overview">
- <title>Overzicht</title>
- <sect2 id="coding-standard.overview.scope">
- <title>Bereik</title>
- <para>Dit document beschrijft de richtlijnen en
- hulpmiddelen voor softwareontwikkelaars en teams die programmeren met
- behulp van of die programmeren op het Zend Framework. De volgende onderwerpen zullen aan de orde komen:</para>
- <para><itemizedlist>
- <listitem>
- <para revisionflag="changed">PHP bestandsformattering</para>
- </listitem>
- <listitem>
- <para revisionflag="changed">Benamingsovereenkomst</para>
- </listitem>
- <listitem>
- <para revisionflag="changed">Codestijl</para>
- </listitem>
- <listitem>
- <para>Inline Documentatie</para>
- </listitem>
- </itemizedlist></para>
- </sect2>
- <sect2 id="coding-standard.overview.goals">
- <title>Doelen</title>
- <para>Goede coderichtlijnen zijn belangrijk in
- alle ontwikkelingsprojecten, in het bijzonder wanneer meerdere
- programmeurs aan eenzelfde project werken. De coderichtlijnen spelen een
- grote rol in het produceren van kwaliteitscode met minder bugs en die
- gemakkelijker kan worden onderhouden.</para>
- </sect2>
- </sect1>
- <sect1 id="coding-standard.php-file-formatting">
- <title>PHP Bestandsformattering</title>
- <sect2 id="coding-standard.php-file-formatting.general">
- <title>Algemeen</title>
- <para>Voor bestanden die alleen PHP code bevatten
- is de sluitende tag ("?>") nooit toegelaten. Die wordt niet geëist
- door PHP. Het niet schrijven van deze afbakening voorkomt het toevoegen
- van spaties in de output.</para>
- <para><emphasis>BELANGRIJK</emphasis>: Toevoegen van binaire gegevens
- zoals toegelaten door <code>__HALT_COMPILER()</code> is niet toegelaten
- in eender welk Zend Framework PHP bestand of bestanden die daarvan zijn
- afgeleid. Het gebruik van deze mogelijkheid is alleen toegelaten in
- speciale installatie scripts.</para>
- </sect2>
- <sect2 id="coding-standard.php-file-formatting.indentation">
- <title>Indenting</title>
- <para>Gebruik een indent van 4 spaties, zonder tabulatie</para>
- </sect2>
- <sect2 id="coding-standard.php-file-formatting.max-line-length">
- <title>Maximale regellengte</title>
- <para>De doellengte voor een regel is 80 tekens,
- dus ontwikkelaars zouden moeten proberen om zo dicht mogelijk bij de 80
- kolommengrens te blijven èn praktisch te blijven. Langere regels zijn
- aanvaardbaar. De maximale lengte voor eender welke regel code in PHP is
- 120 tekens.</para>
- </sect2>
- <sect2 id="coding-standard.php-file-formatting.line-termination">
- <title>Regeleinde</title>
- <para>Regeleindes worden geschreven volgens de
- Unix standaard. Regels moeten eindigen op één enkele linefeed (LF). Een
- linefeed is een ordinal 10, of een hexadecimale 0x0A.</para>
- <para>Gebruik geen carriage returns (CR) zoals
- Macintosh computers (0x0D).</para>
- <para>Gebruik geen carriage return/linefeed
- combinatie (CRLF) zoals Windows computers (0x0D, 0x0A).</para>
- </sect2>
- </sect1>
- <sect1 id="coding-standard.naming-conventions">
- <title>Benamingsovereenkomst</title>
- <sect2 id="coding-standard.naming-conventions.classes">
- <title>Klassen</title>
- <para>Het Zend Framework gebruikt een
- klassebenamingsovereenkomst waarbij de namen van de klassen direct
- overeenkomen met de mappen waarin ze zijn opgeslagen. De root directory
- van de Zend Framework is de "Zend" map, waaronder alle klassen
- hiërarchisch zijn ondergebracht.</para>
- <para>Klassenamen mogen alleen alfanumerieke tekens bevatten.
- Nummers zijn toegelaten in klassename maar worden afgeraden. Underscores
- zijn alleen toegelaten als vervanging van een padscheider -- de
- bestandsnaam "Zend/Db/Table.php" moet overeenkomen met de klassenaam
- "Zend_Db_Table".</para>
- <para>Indien een klassenaam bestaat uit meer dan één woord
- moet de eerste letter van elk woord een hoofdletter zijn. Opeenvolgende
- hoofdletters zijn niet toegestaan, bv. een klasse "Zend_PDF" is niet
- toegestaan terwijl "Zend_Pdf" aanvaardbaar is.</para>
- <para>Zend Framework klassenamen waarvan Zend of één van de
- bijdragende partners de auteur is en die met het Framework worden
- verzonden moeten altijd beginnen met "Zend_" en moeten in de "Zend/" map
- hiërarchie worden opgeslagen.</para>
- <para>Dit zijn voorbeelden van aanvaardbare
- klassenamen:</para>
- <para><programlisting role="php">Zend_Db
- Zend_View
- Zend_View_Helper
- </programlisting> <emphasis>BELANGRIJK:</emphasis> Code die werkt met het Framework maar er geen
- deel van is, bv. code geschreven door een Frameworkgebruiker en niet
- door Zend of één van de Framework partnerbedrijven, mogen nooit
- beginnen met "Zend_".</para>
- </sect2>
- <sect2 id="coding-standard.naming-conventions.interfaces">
- <title>Interfaces</title>
- <para>Interface klassen moeten dezelfde overeenkomsten
- respecteren als andere klassen (zie hierboven), maar moeten bovendien
- eindigen op het woord "interface", zoals in deze
- voorbeelden:</para>
- <para><programlisting role="php">Zend_Log_Adapter_Interface
- Zend_Controller_Dispatcher_Interface</programlisting></para>
- </sect2>
- <sect2 id="coding-standard.naming-conventions.filenames">
- <title>Bestandsnamen</title>
- <para>Voor alle andere bestanden zijn alleen alfanumerieke
- tekens, underscores en het min teken ("-") toegestaan. Spaties zijn
- verboden.</para>
- <para>Elk bestand dat PHP code bevat moet eindigen op de
- extensie ".php". Deze voorbeelden tonen aanvaardbare bestandsnamen voor
- bestanden die klassen bevatten uit de voorbeelden in de vorige
- sectie:</para>
- <para><programlisting role="php">Zend/Db.php
- Zend/Controller/Front.php
- Zend/View/Helper/FormRadio.php</programlisting> Bestandsnamen moeten de
- overeenkomst met de klassenamen respecteren, zoals hierboven
- beschreven.</para>
- </sect2>
- <sect2 id="coding-standard.naming-conventions.functions-and-methods">
- <title>Functies en methodes</title>
- <para>Functienamen mogen alleen alfanumerieke tekens bevatten.
- Underscores zijn niet toegestaan. Nummers zijn toegestaan in
- functienamen maar worden afgeraden.</para>
- <para>Functienamen moeten altijd met een kleine letter
- beginnen. Indien een functienaam bestaat uit meer dan één woord, moet de
- eerste letter van elk nieuw woord een hoofdletter zijn. Dit wordt
- de "studlyCaps" of "camelCaps" methode
- genoemd.</para>
- <para>Langsprekendheid wordt aangeraden. Functienamen zouden
- zoveel woorden moeten bevatten als praktisch is om het begrijpen van de
- code te vergemakkelijken.</para>
- <para>Dit zijn voorbeelden van aanvaardbare
- functienamen: <programlisting role="php">filterInput()
- getElementById()
- widgetFactory()</programlisting></para>
- <para>Voor objectgeoriënteerd programmeren zouden
- databenaderingsmethodes altijd met "get" of "set" moeten worden
- voorafgegaan. Bij het gebruik van ontwerppatronen, zoals het singleton
- of factory patroon, zou de naam van de methode de patroonnaam moeten
- bevatten indien mogelijk. Dit om het gebruik van het patroon
- gemakkelijker herkenbaar te maken.</para>
- <para>Functies in het globale bereik ("drijvende
- functies") zijn toegestaan maar afgeraden. Het is aanbevolen deze
- functies in een statische klasse te wikkelen.</para>
- </sect2>
- <sect2 id="coding-standard.naming-conventions.variables">
- <title>Variabelen</title>
- <para>Namen van variabelen mogen alleen bestaan uit alfanumerieke
- tekens. Underscores zijn niet toegestaan. Nummers zijn toegestaan maar
- worden afgeraden.</para>
- <para>Voor eigenschappen die verklaard worden met het "private" of
- "protected" concept moet het eerste teken van de functienaam een
- enkele underscore zijn. Dit is het enige aanvaardbare gebruik van de
- underscore in een functienaam. Eigenschappen verklaard als "public" mogen
- nooit met een underscore beginnen.</para>
- <para>Zoals functienamen (zie sectie 3.3, hierboven) moeten
- namen van variabelen altijd met een kleine letter beginnen en volgen ze de
- "camelCaps" behoofdletteringsovereenkomst.</para>
- <para>Langsprekendheid is aangeraden. Variabelen zouden zoveel
- woorden moeten bevatten als praktisch is. Beknopte variabelnamen zoals
- "$i" en "$n" worden afgeraden voor alles behalve de kleinst mogelijke
- loops. Als een loop meer dan 20 coderegels bevat, moeten de index
- variabelen meer beschrijvende namen hebben.</para>
- </sect2>
- <sect2 id="coding-standard.naming-conventions.constants">
- <title>Constanten</title>
- <para>Namen voor constanten mogen zowel alfanumerieke tekens
- als de underscore bevatten. Nummers zijn toegelaten in
- constantnamen.</para>
- <para>constantnamen moeten altijd alleen bestaan uit
- hoofdletters wat de alfanumerieke tekens betreft.</para>
- <para>Constanten moeten worden gedefinieerd als klasseleden
- door het concept "const" te gebruiken. Constanten verklaren in het
- globale bereik met "define" is toegelaten maar wordt afgeraden.</para>
- </sect2>
- </sect1>
- <sect1 id="coding-standard.coding-style">
- <title>Codestijl</title>
- <sect2 id="coding-standard.coding-style.php-code-demarcation">
- <title>PHP Code Afbakening</title>
- <para>PHP code moet altijd worden afgebakend met de volledige standaard PHP
- markeringen: <programlisting role="php">
- <?php
- ?></programlisting></para>
- <para>Korte markeringen zijn nooit toegelaten</para>
- </sect2>
- <sect2 id="coding-standard.coding-style.strings">
- <title>Strings</title>
- <sect3 id="coding-standard.coding-style.strings.literals">
- <title>String Literals</title>
- <para>Wanneer een string letterlijk is (hij bevat geen variabelvervanging),
- moet altijd de apostroof of "enkele quote" gebruikt worden om de string
- af te bakenen: <programlisting role="php">
- $a = 'Voorbeeld String';</programlisting></para>
- </sect3>
- <sect3 id="coding-standard.coding-style.strings.literals-containing-apostrophes">
- <title>Letterlijke strings die apostrofen bevatten</title>
- <para>Wanneer een letterlijke string zelf apostrofen bevat is het
- toegelaten de string af te bakenen met aanhalingstekens ("double
- quotes"). Dit is dringend aangeraden voor SQL verklaringen:
- <programlisting role="php">
- $sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";</programlisting>
- De bovenstaande syntax is verkozen boven het "escapen" van de apostrofen.</para>
- </sect3>
- <sect3 id="coding-standard.coding-style.strings.variable-substitution">
- <title>Variabelvervanging</title>
- <para>Variabelvervanging is toegestaan met respect voor de volgende vormen: <programlisting role="php">
- $greeting = "Hello $name, welcome back!";
- $greeting = "Hello {$name}, welcome back!";</programlisting></para>
- <para>Om uniformiteit te respecteren is deze vorm niet toegestaan: <programlisting
- role="php">
- $greeting = "Hello ${name}, welcome back!";</programlisting></para>
- </sect3>
- <sect3 id="coding-standard.coding-style.strings.string-concatenation">
- <title>String samenvoeging</title>
- <para>Strings kunnen samengevoegd worden met de "." operator. Er moet steeds een spatie
- vòòr en na de "." operator worden ingevoegd om de leesbaarheid te verbeteren: <programlisting role="php">
- $company = 'Zend' . 'Technologies';</programlisting></para>
- <para>Wanneer men strings samenvoegt met de "." operator is het toegelaten
- de verklaring in meerdere regels op te breken om de leesbaarheid te vergroten.
- In dat geval moet elke opeenvolgende regel met spaties worden opgevuld zodat
- de "." operator uitgelijnd is onder de "=" operator: <programlisting role="php">
- $sql = "SELECT `id`, `name` FROM `people` "
- . "WHERE `name` = 'Susan' "
- . "ORDER BY `name` ASC ";</programlisting></para>
- </sect3>
- </sect2>
- <sect2 id="coding-standard.coding-style.arrays">
- <title>Arrays</title>
- <sect3 id="coding-standard.coding-style.arrays.numerically-indexed">
- <title>Numeriek Geïndexeerde Arrays</title>
- <para>Negatieve nummers zijn verboden voor indexen.</para>
- <para>Een geïndexeerde array mag starten met eender welk niet negatief nummer.
- Dit wordt evenwel afgeraden. Het is aangeraden dat alle arrays een
- basisindex van 0 hebben.</para>
- <para>Wanneer men een geïndexeerde array definieert met het <code>array</code>
- concept moet er een spatie worden ingevoegd na elke komma afbakening om
- de leesbaarheid te verbeteren: <programlisting role="php">
- $sampleArray = array(1, 2, 3, 'Zend', 'Studio');</programlisting></para>
- <para>Het is ook toegelaten om een geïndexeerde array op meerdere
- regels te definieren. In dat geval moet elke opeenvolgende regel met spaties
- worden opgevuld zodanig dat het begin van elke regel als volgt is uitgelijnd:
- <programlisting role="php">
- $sampleArray = array(1, 2, 3, 'Zend', 'Studio',
- $a, $b, $c,
- 56.44, $d, 500);</programlisting></para>
- </sect3>
- <sect3 id="coding-standard.coding-style.arrays.associative">
- <title>Associatieve Arrays</title>
- <para>Wanneer men associatieve arrays met het <code>array</code>
- concept definieert is het aangeraden de verklaring in meerdere regels op te
- breken. In dat geval moet elke opeenvolgende regel met spaties worden
- opgevuld zodat de indexen (keys) en waarden (values) uitgelijnd zijn:
- <programlisting role="php">
- $sampleArray = array('firstKey' => 'firstValue',
- 'secondKey' => 'secondValue');</programlisting></para>
- </sect3>
- </sect2>
- <sect2 id="coding-standard.coding-style.classes">
- <title>Klassen</title>
- <sect3 id="coding-standard.coding-style.classes.declaration">
- <title>Klasse Verklaring</title>
- <para>Klassebenaming moet de volgende overeenkomsten volgen.</para>
- <para>De accolade wordt steeds op de regel onder de klassenaam geschreven
- ("one true brace" vorm).</para>
- <para>Elke klasse moet een documentatieblok hebben dat de PHPDocumentor
- standaard volgt.</para>
- <para>Code in een klasse moet geïndenteerd zijn met vier spaties.</para>
- <para>Eén klasse, éen bestand.</para>
- <para>Bijkomende code schrijven in een klassebestand is toegelaten maar wordt
- afgeraden. Indien men het toch doet moet de bijkomende code met twee lege
- regels worden gescheiden van de klassecode.</para>
- <para>Dit is een voorbeeld van een aanvaardbare klasseverklaring:
- <programlisting role="php">
- /**
- * Documentatie Blok Hier
- */
- class SampleClass
- {
- // de gehele inhoud van de klasse
- // moet geindenteerd worden met vier spaties
- }</programlisting></para>
- </sect3>
- <sect3 id="coding-standard.coding-style.classes.member-variables">
- <title>Klasse lidvariabelen</title>
- <para>Lidvariabelen moeten benaamd worden volgens de variabele
- benamingsovereenkomst.</para>
- <para>Variabelen die in de klasse worden verklaard moeten bovenaan
- in de klasse worden opgesomd, vòòrdat functies worden verklaard.</para>
- <para>Het concept <code>var</code> is niet toegestaan. Lidvariabelen
- moeten steeds hun zichtbaarheid verklaren door één van de <code>private</code>,
- <code>protected</code>, of <code>public</code> concepten te gebruiken.
- Toegang verlenen aan lidvariabelen door hen publiek te maken is toegestaan
- maar wordt afgeraden ten voordele van de databenaderingsmethodes (set/get).</para>
- </sect3>
- </sect2>
- <sect2 id="coding-standard.coding-style.functions-and-methods">
- <title>Functies en Methodes</title>
- <sect3 id="coding-standard.coding-style.functions-and-methods.declaration">
- <title>Functie en Methode Verklaring</title>
- <para>Functiebenaming moet de benamingsovereenkomsten volgen.</para>
- <para>Functies binnen klasses moeten steeds hun zichtbaarheid verklaren
- door één van de <code>private</code>, <code>protected</code>, of
- <code>public</code> concepten te gebruiken.</para>
- <para>Net zoals klassen, moet de accolade steeds op de regel onder de functienaam
- worden geschreven ("one true brace" vorm). Er is geen spatie tussen de functienaam
- en de haakjes voor de argumenten. Er is één spatie tussen de sluitende haakjes en de
- accolade.</para>
- <para>Functies in het globale bereik zijn zeer sterk afgeraden.</para>
- <para>Dit is een voorbeeld van een aanvaardbare verklaring van een functie in een klasse:
- <programlisting role="php">
- /*
- * Documentatie blok hier
- */
- function sampleMethod($a)
- {
- // de gehele inhoud van de functie
- // moet geindenteerd worden met vier spaties
- }</programlisting></para>
- <para><emphasis>NOTA:</emphasis> Doorgeven per verwijzing (pass by reference) is
- alleen toegestaan in de functieverklaring: <programlisting role="php">
- function sampleMethod(&$a)
- {}</programlisting></para>
- <para>Call-time pass by reference is verboden.</para>
- <para>De terugkeerwaarde mag niet tussen haakjes worden ingesloten.
- Dat kan de leesbaarheid hinderen en kan ook de code breken indien een
- methode later wordt veranderd om per verwijzing terug te sturen.
- <programlisting role="php">
- function foo()
- {
- // FOUT
- return($this->bar);
- // GOED
- return $this->bar;
- }</programlisting></para>
- </sect3>
- <sect3 id="coding-standard.coding-style.functions-and-methods.usage">
- <title>Functie- en Methodegebruik</title>
- <para>Functie-argumenten worden gescheiden door één enkele spatie
- na de komma afbakening. Dit is een voorbeeld van een aanvaardbare
- functie-aanroep voor een functie die drie argumenten heeft:
- <programlisting role="php">
- threeArguments(1, 2, 3);</programlisting></para>
- <para>Call-time pass by reference is verboden. Zie de sectie over
- functieverklaringen voor de juiste wijze om argumenten per verwijzing door te
- sturen.</para>
- <para>Voor functies welke arrays als argument aanvaardden mag de
- functieaanroep het "array" concept bevatten en kan deze in meerdere
- regels worden opgesplitst om de leesbaarheid te vergroten.
- In deze gevallen blijven de regels voor het schrijven van arrays van
- kracht: <programlisting role="php">
- threeArguments(array(1, 2, 3), 2, 3);
- threeArguments(array(1, 2, 3, 'Zend', 'Studio',
- $a, $b, $c,
- 56.44, $d, 500), 2, 3);</programlisting></para>
- </sect3>
- </sect2>
- <sect2 id="coding-standard.coding-style.control-statements">
- <title>Control Statements</title>
- <sect3 id="coding-standard.coding-style.control-statements.if-else-elseif">
- <title>If / Else / Elseif</title>
- <para>Control statements gebaseerd op <code>if</code> en
- <code>elseif</code> concepten moeten een enkele spatie voor de openende
- haakjes van de conditie, en een enkele spatie na de sluitende haakjes.</para>
- <para>In de voorwaardeverklaringen tussen de haakjes moeten
- operators gescheiden worden met spaties om de leesbaarheid te
- bevorderen. Binnenhaakjes zijn aangeraden voor het groeperen van
- meer complexe voorwaarden.</para>
- <para>De openingsaccolade wordt op dezelfde regel als de
- voorwaardeverklaring geschreven. De sluitende accolade wordt altijd op
- een alleenstaande regel geschreven. Alle inhoud binnenin de accolades
- moet steeds met vier spaties geïndenteerd worden.
- <programlisting role="php">
- if ($a != 2) {
- $a = 2;
- }</programlisting></para>
- <para>Voor "if" verklaringen die "else if" of "else" inhouden moet de vorm
- zoals in de volgende voorbeelden zijn: <programlisting role="php">
- if ($a != 2) {
- $a = 2;
- } else {
- $a = 7;
- }
- if ($a != 2) {
- $a = 2;
- } else if ($a == 3) {
- $a = 4;
- } else {
- $a = 7;
- }</programlisting> PHP laat het toe om in bepaalde gevallen deze verklaringen zonder
- accolades te schrijven. De codestandaard maakt geen verschil en alle "if",
- "else if" of "else" verklaringen moeten accolades gebruiken.</para>
- <para>Het gebruik van "elseif" is toegestaan maar "else if" wordt sterk
- aanbevolen.</para>
- </sect3>
- <sect3 id="coding-standards.coding-style.control-statements.switch">
- <title>Switch</title>
- <para>Control statements geschreven met "switch" moeten een enkele spatie
- voor de openende haakjes van de voorwaardeverklaring hebben, en een enkele
- spatie na de sluitende haakjes.</para>
- <para>Alle inhoud binnen een "switch" verklaring moet met vier spaties
- geïndenteerd worden. Inhoud onder elke "case" moet geïndenteerd worden
- met vier extra spaties.</para>
- <programlisting role="php">
- switch ($numPeople) {
- case 1:
- break;
- case 2:
- break;
- default:
- break;
- }</programlisting>
- <para><code>default</code> mag nooit weggelaten worden van een
- <code>switch</code> verklaring.</para>
- <para><emphasis>NOTA:</emphasis> Het is soms handig een <code>case</code>
- verklaring te hebben die doorvalt naar de volgende <code>case</code>
- verklaring door het weglaten van <code>break</code> of <code>return</code>
- in de verklaring. Om deze gevallen van bugs te onderscheiden moet elk
- van de gevallen waarin een <code>break</code> of <code>return</code>
- wordt weggelaten een commentaar "// break intentionally omitted"
- bevatten.</para>
- </sect3>
- </sect2>
- <sect2 id="coding-standards.inline-documentation">
- <title>Inline Documentatie</title>
- <sect3 id="coding-standards.inline-documentation.documentation-format">
- <title>Documentatie Formaat</title>
- <para>Alle documentatieblokken ("docblocks") moeten compatibel zijn
- met het phpDocumentor formaat. Een beschrijving van het
- phpDocumentor formaat is buiten het bereik van dit document.
- Voor meer informatie kunt u terecht op: <ulink
- url="http://phpdoc.org/">http://phpdoc.org"</ulink></para>
- <para>Alle broncodebestanden geschreven voor het Zend Framework of dat
- ermee samenwerkt moet een "file-level" docblock bevatten aan het begin
- van elk bestand en een "class-level" docblock onmiddellijk boven elke
- klasse. Hierna enkele voorbeelden van zulke docblocks.</para>
- </sect3>
- <sect3 id="coding-standards.inline-documentation.files">
- <title>Bestanden</title>
- <para>Elk bestand dat PHP code bevat moet een hoofdblok aan het
- begin van het bestand bevatten dat minstens de volgende
- phpDocumentor gegevens bevat: <programlisting role="php">
- /**
- * Korte beschrijving van het bestand
- *
- * Lange beschrijving van het bestand (indien aanwzeig)...
- *
- * LICENSE: Licentie informatie
- *
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://www.zend.com/license/3_0.txt PHP License 3.0
- * @version $Id:$
- * @link http://dev.zend.com/package/PackageName
- * @since File available since Release 1.2.0
- */</programlisting></para>
- </sect3>
- <sect3 id="coding-standards.inline-documentation.classes">
- <title>Klassen</title>
- <para>Elke klasse moet een docblock bevatten dat minstens
- de volgende phpDocumentor gegevens bevat: <programlisting role="php">
- /**
- * Korte beschrijving van de klasse
- *
- * Lange beschrijving van de klasse (indien aanwezig)...
- *
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://www.zend.com/license/3_0.txt PHP License 3.0
- * @version Release: @package_version@
- * @link http://dev.zend.com/package/PackageName
- * @since Class available since Release 1.2.0
- * @deprecated Class deprecated in Release 2.0.0
- */</programlisting></para>
- </sect3>
- <sect3 id="coding-standards.inline-documentation.functions">
- <title>Functies</title>
- <para>Elke functie, methodes inbegrepen, moet een docblock hebben
- dat minstens het volgende bevat: <itemizedlist>
- <listitem>
- <para>Een beschrijving van de functie</para>
- </listitem>
- <listitem>
- <para>Alle argumenten</para>
- </listitem>
- <listitem>
- <para>Alle mogelijke terugwaarden</para>
- </listitem>
- </itemizedlist></para>
- <para>Het is niet nodig om de "@access" tags te gebruiken
- want de zichtbaarheid is reeds bekend via het gebruik van
- "public", "private", of "protected" bij het verklaren van de
- functie.</para>
- <para>Indien een functie of methode een exception mag teruggeven,
- gebruik @throws:
- <programlisting role="php">
- @throws exceptionClass [beschrijving]
- </programlisting></para>
- </sect3>
- </sect2>
- </sect1>
- </appendix>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|