PHP es un lenguaje de programación que poco a poco se está consolidando como una eficiente alternativa para el desarrollo de grandes sistemas web. Desde la aparición de PHP 5, podemos ser capaces de desarrollar cualquier sistema web que antes resultaba impensable ya que aporta grandes posibilidades que deberíamos de utilizar para “profesionalizar” el lenguaje. Cierto es que, para que PHP 5 resulte eficiente, deberíamos de considerar unas especificaciones de lenguaje o protocolo de programación. Por tanto debemos de evitar crear un estándar propio, y utilizar el estándar definido por Zend Technologies (empresa que desarolla PHP y Zend Framework).
Una de las normativas publicadas por Zend Framework es su “Naming conventions” o nomenclatura de código. En ese manual se indican las normas de uso de código PHP que debemos de seguir a la hora de programar, aquí se indican las principales características.
Librerías utilizadas en la API (interfaces de clase)
Para crear librerías con nombre compuesto en el momento de crear una API que puedan utilizar los desarrolladores de aplicaciones, separe los nombres con guiones bajos (_), no CamelCase. Por ejemplo, el nombre que se utiliza para el controlador PDO MySQL es ‘pdo_mysql’, no ‘pdoMysql’.
Clases
Zend Framework utiliza una convención de nombres de clases de tal manera que el nombre de las clases debe de corresponderse con el directorio donde se almacena ya que todas las clases se almacenan jerárquicamente dentro del directorio raíz “Zend/”.
Los nombres de las clases sólo pueden contener caracteres alfanuméricos y no pueden comenzar por ningún carácter especial ni números. El guión bajo (_) sólo se permite en lugar del separador de ruta. Así pues, el nombre de archivo “Zend / Db / Table.php” debe correlacionarse con el nombre de la clase “Zend_Db_Table”.
Si el nombre de la clase se compone de más de una palabra, únicamente la primera letra de cada palabra debe ser mayúscula. Así por ejemplo, la manera correcta de definir la clase que genera ficheros pdf será “Zend_Pdf”, mientras que otras alternativas como “Zend_PDF” o “ZEND_Pdf”, no serían adecuadas.
Las clases escritas por Zend o por cualquiera de las empresas asociadas participantes en cualquier distribución de Zend deben de comenzar por la palabra “Zend_” y deben ser almacenadas en el directorio “Zend/”. Algunos de los ejemplos utilizadas como nombres de clases válidos son: Zend_Db, Zend_View, Zend_View_Helper.
Las llaves de apertura y cierre de clases y métodos van siempre a la izquierda, no así para el resto de operaciones como pueden ser if, for, while, ….
Interfaces
Las clases utilizadas para generar la interfaz de la aplicación deben seguir las mismas reglas que el resto de las clases (ver arriba), pero deben terminar con la palabra “_Interface”. Por ejemplo: Zend_Log_Adapter_Interface, Zend_Controller_Dispatcher_Interface.
Nombres de archivos
Los nombres de archivos que contengan código PHP, sólo pueden contener caracteres alfanuméricos, guiones bajos (_) y el carácter guión (“-“). El resto de caracteres extraños, incluidos el espacio están desaconsejados.
Cualquier archivo que contiene código PHP debe terminar con la extensión “.php” (excepto los scripts de vista, que terminan en “.phtml” por defecto). Los siguientes ejemplos muestran nombres de archivos adecuados para contener los nombres de clases de los ejemplos de la sección anterior: “Zend/db.php”, “Zend/Controller/Front.php”, “Zend/View/Helper/FormRadio.php”.
Es imprescindible tener en cuenta que los nombres de archivo deben de seguir las características descritas anteriormente en el apartado de clases.
Funciones y métodos
Los nombres de funciones y métodos sólo pueden contener caracteres alfanuméricos y no pueden comenzar por ningún carácter especial ni números.
Los nombres de funciones siempre deben comenzar con una letra minúscula. Cuando el nombre de la función se compone de más de una palabra, la primera letra de cada palabra debe ser mayúscula. Esto se conoce comúnmente método “camelCaps”.
Los nombres de funciones deben ser lo más ilustrativo posible para una mejor comprensión del código.
Algunos ejemplos de nombres de funciones son: filterInput(), getElementById(), …
En programación orientada a objetos, los métodos accesores o modificadores deben de comenzar siempre por “get” o “set”. Cuando se utilizan patrones como el “Singleton” o el “Factory”, el nombre del método debería de contener el nombre del patrón desarrollado en dicho método. Esto es una práctica aconsejable para reconocer de un vistazo los diferentes patrones implementados en una clase.
Aunque los nombres de las funciones no pueden contener el guión bajo (_), los métodos de las clases declarados como “protected” o “prívate” deben comenzar por este carácter.
Por ejemplo:
class Zend_Foo
{
protected function _fooBar()
{
// …
}
}
No se recomiendan las funciones de alcance global o “funciones flotantes”. Es aconsejable enmarcar este tipo de funciones dentro de una clase estática.
Las funciones y variables declaradas como “static” en una clase no deberían de ser, generalmente, “prívate”, pero si protegidas, para eso se utiliza la sentencia “protected”. Si la función no debe de ser extendida se puede utilizar la sentencia “final”.
En php 5, el método contructor se define como “__construct”, con dos guiones bajos (__), en lugar de con el nombre de la clase como se hacía en php 4 o en Java.
Parámetros opcionales en una función
Para indicar que un parámetro que pasamos a una función es opcional, utilice “null” como valor predeterminado en lugar de “false”. Por ejemplo:
public function foo ($ requerido, opcional $ = null)
Sin embargo, si un parámetro opcional es booleano, y su valor lógico por defecto debe ser verdadero o falso, se acepta el uso de “true” o “false”
Variables
Los nombres de variables sólo pueden contener caracteres alfanuméricos y no pueden comenzar por ningún carácter especial ni números.
Los nombres de los atributos de una clase que se definen como “private” o “protected” deben de comenzar por guión bajo (_), mientras que los atributos declarados como “public” no pueden comenzar con un guión bajo (_).
Por ejemplo:
class Zend_Foo
{
protected $_bar;
public $id;
}
Al igual que los nombres de funciones, los nombres de variable siempre deben comenzar con una letra minúscula y seguir el método “camelCaps”.
Los nombres de variables siempre deben de ser lo más descriptivo posible, de tal manera que los nombres de variables cortos como $i o $n sólo son aconsejables para pequeños bucles, no para bucles de más de 20 líneas de código, para lo cual se aconseja definir un nombre de variable más apropiado.
Constantes
El nombre de las constantes puede contener tanto caracteres alfanuméricos como caracteres extraños. Eso sí, todas las letras deben de estar en mayúsculas y, si el nombre de la constante está compuesto por varias palabras, éstas deben de ir separadas por guiones bajos (_).
Aquí habéis visto las principales características de la naming convention de Zend Framework. Si queréis más información podéis consultar el manual completo de Zend Framework en la página oficial.
Como habéis visto existe todo un manual con las reglas de cómo generar código, si queremos profesionalizar este lenguaje de programación y ser capaces de definir aplicaciones correctamente es aconsejable seguir este estándar y evitar el crear nuestros propios estándares de programación.
Post publicado por: German Romeo
SEAS es el centro de formación online del Grupo San Valero, especializado en el ámbito técnico, industrial y de empresa. Visita www.seas.es para consultar nuestra oferta formativa de cursos y másteres. Formación profesional para el empleo de calidad y accesible para todos.