Používat pouze UTF-8 (bez identifikačních bytů)
Používat pouze MEZERY pro odsazení (nikoliv TAB)
Každé slovo začíná VELKÝM písmenem - Manager
Víceslovné názvy spojujeme přímo - LibManager
Používat prefixy
c - Class
i - Interface
e - Excpetion
a - Abstract
r - Require/Include
g - Globální nebo implicitní proměnná
x - Lokální proměnná
p - Parametr metody/funkce
i - Iterační proměnná
Jedna třída na soubor
Jméno souboru shodné s jménem třídy
Příklad: class cExample {…} v souboru cExample.php
Příklad: public function SetConvention($pName, $pValue) {…}
Příklad: function PrintConvention() {…}
Příklad: $xReturnValue = null;
Příklad: try {…} catch(eSystemException $e) {…}
Všechna písmena velká
Oddělovač slov ‘_’
Příklad: APP_URL
Používat tradiční označení - $i, $j, $k, …
Používate prefix i pro iterační proměnné
Příklad: for ($i = 0; $i > 0; $i–) {…}
Příklad: foreach ($Array as $iKey => $iValue) {…}
Pro textové soubory používat všechna písmena velká a oddělovačem je ‘_’
Příklad: /WebRoot/Lib/Core/Classes/cLibManager.php
Příklad: /WebRoot/HOWTO_INSTALL.TXT
Každý soubor bude obsahovat hlavičku:
/** * /Lib/Core/aException.php * * Abstract class for exceptions * * @version $Id: Konvence.txt 16 2007-06-19 11:50:56Z Ondra $ * @author Ondrej Subrt <mail> * @copyright 2006-2007 Ondrej Subrt * @package Core * @extends Exception * @abstract */
Používat dokumentační komentáře (phpDocumentor, JavaDoc syntax, www.phpdoc.org)
Příklad:
/** * Desccription * @param <bool|int|float|mixed|null|void|array|Object> [Variable] [Description] * @return <bool|int|float|mixed|null|void|array|Object> [Description] * @extends * @private * @public * @final * @global * @static * @var <bool|int|float|mixed|null|void|array|Object> * @package <PackageName>[.SubPackage][...] * @version <VersionNumber> <Date> * @author <Name> <E-mail> */