Zend Framework se estandariza una convencion de nombres de clases donde los nombres de las clases apuntan directamente a las carpetas en las que estan contenidas. La carpeta raiz de la biblioteca estandar de Zend Framework es la carpeta "Zend/", mientras que la carpeta raíz de las bibliotecas extra de Zend Framework es la carpeta "ZendX/". Todas las clases de Zend Framework están almacenadas jerárquicamente bajo estas carpetas raíz.
Los nombres de clases pueden contener sólo caracteres
alfanuméricos. Los números están permitidos en los nombres de
clase, pero desaconsejados en la mayoría de casos. Las barras
bajas (_) están permitidas solo como separador de ruta (el
archivo " Zend/Db/Table.php
" debe apuntar
al nombre de clase " Zend_Db_Table
").
Si el nombre de una clase esta compuesto por mas de una
palabra, la primera letra de cada palabra debe aparecer en
mayúsculas. Poner en mayúsculas las letras siguientes no está
permitido, ej: "Zend_PDF" no está permitido, mientras que "
Zend_Pdf
" es admisible.
Estas convenciones definen un mecanismo de pseudo-espacio de nombres para Zend Framework. Zend Framework adoptará la funcionalidad PHP de espacio de nombres cuando esté disponible y sea factible su uso en las aplicaciones de nuestros desarrolladores.
Vea los nombres de clase en las bibliotecas estandar y adicionales (extras) como ejemplos de esta convención de nombres.
Nota
IMPORTANTE: El código que deba distribuirse junto a las bibliotecas de Zend Framework, pero no forma parte de las bibliotecas estándar o extras de Zend (e.g.: código o bibliotecas que no estén distribuídas por Zend) no puede empezar nunca por "Zend_" o "ZendX_".
En general, las clases abstractas siguen las mismas
convenciones que las clases , con una regla adicional: Los nombres de las
clases abstractas deben acabar con el término, "Abstract", y ese
término no debe ser precedida por un guión bajo. Ejemplo,
Zend_Controller_Plugin_Abstract
es
considerado un nombre no válido, pero
Zend_Controller_PluginAbstract
o
Zend_Controller_Plugin_PluginAbstract
serian nombres válidos.
Nota
Esta convención de nombres es nuevo con la versión 1.9.0 de Zend Framework. Las clases que preceden aquella versión no pueden seguir esta regla, pero serán renombradas en el futuro a fin de cumplir la regla.
En general, las clases abstractas siguen las mismas
convenciones que las classes , con una regla adicional: Los nombres de
las interfaces opcionalmente pueden acabar con el término,
"Interface",pero término no debe ser precedida por un guión
bajo. Ejemplo,
Zend_Controller_Plugin_Interface
es
considerado un nombre no válido, pero
Zend_Controller_PluginInterface
o
Zend_Controller_Plugin_PluginInterface
serian nombres válidos.
Si bien esta regla no es necesaria, se recomienda encarecidamente su uso, ya que proporciona una buena refrencia visual a los desarrolladores, como saber que archivos contienen interfaces en lugar de clases.
Nota
Esta convención de nombres es nuevo con la versión 1.9.0 de Zend Framework. Las clases que preceden aquella versión no pueden seguir esta regla, pero serán renombradas en el futuro a fin de cumplir la regla.
Para cualquier otro archivo, sólo caracteres alfanuméricos, barras bajas (_) y guiones (-) están permitidos. Los espacios en blanco están estrictamente prohibidos.
Cualquier archivo que contenga código PHP
debe terminar con la extensión " .php
",
con la excepción de los scripts de la vista. Los siguientes
ejemplos muestran nombres de archivo admisibles para clases de
Zend Framework..:
Zend/Db.php Zend/Controller/Front.php Zend/View/Helper/FormRadio.php
Los nombres de archivo deben apuntar a nombres de clases como se describe arriba.
Los nombres de funciones pueden contener únicamente caracteres alfanuméricos. Las guiones bajos (_) no estan permitidos. Los números están permitidos en los nombres de función pero no se aconseja en la mayoría de los casos.
Los nombres de funciones deben empezar siempre con una letra minúscula. Cuando un nombre de función consiste en más de una palabra, la primera letra de cada nueva palabra debe estar en mayúsculas. Esto es llamado comúnmente como formato "camelCase".
Por norma general, se recomienda la elocuencia. Los nombres de función deben ser lo suficientemente elocuentes como para describir su propósito y comportamiento.
Estos son ejemplos de nombres de funciones admisibles:
filterInput() getElementById() widgetFactory()
Para la programación orientada a objetos, los métodos de acceso para las instancias o variables estáticas deben ir antepuestos con un "get" o un "set". Al implementar el patron de diseño, tales como el patrón singleton o el patrón factory, el nombre del método debe contener en la práctica el nombre del patrón para describir su comportamiento de forma más completa.
Para el caso en que los métodos son declarados con el modificador "private" o "protected", el primer carácter del nombre de la variable debe ser una barra baja (_). Este es el único uso admisible de una barra baja en un nombre de método. Los métodos declarados como públicos no deberían contener nunca una barra baja.
Las funciones de alcance global (también llamadas "funciones flotantes") están permitidas pero desaconsejadas en la mayoría de los casos. Considere envolver esas funciones en una clase estática.
Los nombres de variables pueden contener caracteres alfanuméricos. Las barras bajas (_) no están permitidas. Los números están permitidos en los nombres de variable pero no se aconseja en la mayoría de los casos.
Para las variables de instancia que son declaradas con el modificador "private" o "protected", el primer carácter de la variable debe ser una única barra baja (_). Este es el único caso admisible de una barra baja en el nombre de una variable. Las variables declaradas como "public" no pueden empezar nunca por barra baja.
Al igual que los nombres de funciones (ver sección 3.3), los nombres de variables deben empezar siempre con una letra en minúscula y seguir la convención "camelCaps".
Por norma general, se recomienda la elocuencia. Las variables
deberían ser siempre tan elocuentes como prácticas para
describir los datos que el desarrollador pretende almacenar en
ellas. Variables escuetas como " $i
" y "
$n
" están desaconsejadas, salvo para el
contexto de los bucles más pequeños. Si un bucle contiene más de
20 líneas de código, las variables de índice deberían tener
nombres más descriptivos.
Las constantes pueden contener tanto caracteres alfanuméricos como barras bajas (_). Los números están permitidos.
Todos las letras pertenecientes al nombre de una constante deben aparecer en mayúsculas.
Las palabras dentro del nombre de una constante deben
separarse por barras bajas (_). Por ejemplo,
EMBED_SUPPRESS_EMBED_EXCEPTION
está
permitido, pero
EMBED_SUPPRESSEMBEDEXCEPTION
no.
Las constantes deben ser definidas como miembros de clase con el modificador "const". Definir constantes en el alcance global con la función "define" está permitido pero no recomendado.