A.3. Benamingsovereenkomst

A.3.1. Klassen

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.

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".

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.

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.

Dit zijn voorbeelden van aanvaardbare klassenamen:

Zend_Db

Zend_View

Zend_View_Helper

BELANGRIJK: 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_".

A.3.2. Interfaces

Interface klassen moeten dezelfde overeenkomsten respecteren als andere klassen (zie hierboven), maar moeten bovendien eindigen op het woord "interface", zoals in deze voorbeelden:

Zend_Log_Adapter_Interface
Zend_Controller_Dispatcher_Interface

A.3.3. Bestandsnamen

Voor alle andere bestanden zijn alleen alfanumerieke tekens, underscores en het min teken ("-") toegestaan. Spaties zijn verboden.

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:

Zend/Db.php

Zend/Controller/Front.php

Zend/View/Helper/FormRadio.php

Bestandsnamen moeten de overeenkomst met de klassenamen respecteren, zoals hierboven beschreven.

A.3.4. Functies en methodes

Functienamen mogen alleen alfanumerieke tekens bevatten. Underscores zijn niet toegestaan. Nummers zijn toegestaan in functienamen maar worden afgeraden.

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.

Langsprekendheid wordt aangeraden. Functienamen zouden zoveel woorden moeten bevatten als praktisch is om het begrijpen van de code te vergemakkelijken.

Dit zijn voorbeelden van aanvaardbare functienamen:

filterInput()

getElementById()

widgetFactory()

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.

Functies in het globale bereik ("drijvende functies") zijn toegestaan maar afgeraden. Het is aanbevolen deze functies in een statische klasse te wikkelen.

A.3.5. Variabelen

Namen van variabelen mogen alleen bestaan uit alfanumerieke tekens. Underscores zijn niet toegestaan. Nummers zijn toegestaan maar worden afgeraden.

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.

Zoals functienamen (zie sectie 3.3, hierboven) moeten namen van variabelen altijd met een kleine letter beginnen en volgen ze de "camelCaps" behoofdletteringsovereenkomst.

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.

A.3.6. Constanten

Namen voor constanten mogen zowel alfanumerieke tekens als de underscore bevatten. Nummers zijn toegelaten in constantnamen.

constantnamen moeten altijd alleen bestaan uit hoofdletters wat de alfanumerieke tekens betreft.

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.