A.3. Conventions de nommage

A.3.1. Classes

Le Framework Zend emploie une convention de nommage des classes où les noms des classes mènent directement dans le(s) répertoire(s) dans lesquels elle sont stockées. Le répertoire racine du Framework Zend est le répertoire "Zend", dans lequel toutes les classes sont stockées de façon hiérarchique.

Les noms de classes ne peuvent contenir que des caractères alphanumérique. Les nombres sont autorisés, mais déconseillés. Les tirets bas ("_") ne sont autorisés que pour être utilisés comme séparateur de chemin -- le nom "Zend/Db/Table.php" doit mener à la classe appelée "Zend_Db_Table".

Si un nom de classe comprend plus d'un mot, la première lettre de chaque nouveau mot doit être mis en majuscule. La mise en majuscule successive de lettre n'est pas autorisée, i.e une class "Zend_PDF" est interdit alors que "Zend_Pdf" est autorisé.

Les classes du Framework Zend dont Zend ou les companies partenaires participantes sont les auteur et qui sont distribuées avec le Framework doivent toujours commencer par "Zend_" et doivent être stockée dans le répertoire "Zend" en respectant la hiérarchie.

Voici 3 exemples de noms de classes autorisés :

Zend_Db

Zend_View

Zend_View_Helper

IMPORTANT: le code qui opère avec le Framework mais qui n'en fait par partie, i.e le code écrit par un utilisateur et pas Zend ou une des entreprises partenaires, ne doivent jamais commencer par "Zend_".

A.3.2. Interfaces

Les interfaces doivent suivrent les même conventions que les autres classes (cf ci-dessus), cependant elles doivent finir par le mot "Interface" comme le montre ces exemples :

Zend_Log_Adapter_Interface
Zend_Controller_Dispatcher_Interface

A.3.3. Noms de fichier

Pour tous les autres ficchier, seuls des caractères alphanumérique, tirets bas et tiret demi-cadratin ("-") sont autorisés. Les espaces et les caractères spéciaux sont interdits.

Tout fichier contenant du code PHP doit se terminer par l'extention ".php" Ces exemples montrent des noms de fichiers acceptables pour contenir les noms de classes issus des exemples ci-dessus:

Zend/Db.php

Zend/Controller/Front.php

Zend/View/Helper/FormRadio.php

Les noms de fichiers doivent correspondre aux noms des classes décris ci-dessus.

A.3.4. fonctions et méthodes

Les noms de fonctions ne peuvent contenir que des caractères alphanumériques. Les tirets_bas ne sont pas permis. Les nombres sont autorisés mais déconseillés.

Les noms de fonctions doivent toujours commencer avec une letter en minuscule. Quand un nom de fonction est composé de plus d'un seul mot, la première lettre de chaque mot doivent être mis en majuscule. C'est ce que l'on apelle communément la méthode "studlyCaps" ou "camelCaps".

La clarté est conseillée. Le nom des fonctions devrait être aussi explicite que possible, c'est un gage de compréhension du code.

Voici des exemples de noms acceptables pour des fonctions :

filterInput()

getElementById()

widgetFactory()

Pour la programmation orientée objet, les accesseurs aux objets doivent toujours être préfixés par soit "get" soit "set". Lorsque vous utilisez des patrons de conception, comme le Singleton ou la Frabrique, le nom de la méthode doit contenir le nom du patron pour permettre une reconnaissance plus simple et rapide du patron.

Les fonctions à portée globale ("les fonctions flottantes ") sont autorisées mais déconseillées. Il est recommendé de mettre ces fonctions dans des classes statiques.

A.3.5. Variables

Les noms de variables ne peuvent contenir que des caractères alphanumériques. Les tirets bas ne sont pas permis. Les nombres sont autorisés mais déconseillés.

Pour les variables membres de classe qui sont déclarées comme "private" ou "protected", le premier caractère du nom de la fonction doit être un seul tiret bas. C'est le seul usage acceptable d'un tiret bas dans un nom de fonction. Les variables membres "public" ne devraient jamais commencer par un tiret bas.

Tout comme les noms de fonction (cf la section 3.3 ci-dessus), les noms de variables doivent toujours commencer par un caractère en minuscule et suivre la convention de capitalisation de la méthode "camelCaps"

La clarté est conseillée. Les variables devraient toujours être aussi claires que pratiques. Des noms de variables comme "$i" et "$n" sont déconseillé pour tout autre usage que les petites boucles. Si une boucle contient plus de 20 lignes de code, les variables pour les indices doivent avoir des noms descriptifs.

A.3.6. Constantes

Les constantes peuvent contenir des caractères alphanumérique et des tirets bas. Les nombres sont autorisés.

Les constantes doivent toujours être en majuscule.

Les constantes doivent toujours être définies comme des membres d'une classe, en utilisant la construction "const". Définir des constantes globales avec "define" est permis mais déconseillé.