Professional Documents
Culture Documents
Contenido
Formato de archivos PHP................................................................................ 5
Convenciones de Nombres............................................................................. 5
1. Clases................................................................................................ 5
2. Clases Abstractas.............................................................................. 5
3. Interfaces........................................................................................... 5
4. Nombres de Archivo..........................................................................5
5. Funciones y Mtodos.........................................................................5
6. Variables............................................................................................ 6
7. Constantes......................................................................................... 6
Estilo de cdigo.............................................................................................. 7
1. Demarcacin de cdigo PHP..............................................................7
2. Cadenas de Caracteres......................................................................7
Arrays.......................................................................................................... 7
1. Arrays Indexados Numricamente.....................................................7
2. Arrays Asociativos............................................................................. 8
Clases.......................................................................................................... 8
1. Declaracin de clases........................................................................8
2. Variables de miembros de clase.....................................................9
Funciones y Mtodos................................................................................... 9
1. Declaracin de Funciones y Mtodos.................................................9
2. Uso de Funciones y Mtodos............................................................10
3. Sentencias de Control......................................................................10
4. Switch........................................................................................... 10
Documentacin integrada.........................................................................11
1. Formato de documentacin..................................................................11
2. Archivos............................................................................................ 11
3. Clases........................................................................................... 12
4. Funciones......................................................................................... 12
RECOMENDACIN DE LA ESTRUCTURA DE DIRECTORIO DEL PROYECTO....12
PHP DOCUMENTATION DOCBOCK.................................................................13
1. API................................................................................................... 13
2. Autor................................................................................................ 14
3. Copyright......................................................................................... 14
Formato de archivos PHP
1. General: Para archivos que contengan nicamente cdigo PHP, la etiqueta de
cierre ("?>") no est permitida. No es requerida por PHP, y omitirla evita la
inyeccin de espacios en blanco en la respuesta.
2. Identacin: La identacin suele estar compuesta por 4 espacios. Las
tabulaciones no estn permitidas.
3. Tamao mximo de lnea: La longitud recomendable para una lnea de cdigo
es de 80 caracteres. No obstante, lneas ms largas pueden ser aceptables en
algunas situaciones. El tamao mximo de cualquier lnea de cdigo PHP es
de 120 caracteres.
4. Final de lnea: Las lneas deben acabar con un carcter linefeed (LF)
echo "Ruta: $ruta", PHP_EOL;
Convenciones de Nombres
1. Clases: Los nombres de clases pueden contener slo caracteres
alfanumricos. Los nmeros estn permitidos en los nombres de clase, pero
desaconsejados en la mayora de casos. Las barras bajas (_) estn permitidas
solo como separador de ruta.
Para el caso en que los mtodos son declarados con el modificador "private" o
"protected", el primer carcter del nombre de la variable debe ser una barra
baja (_). Este es el nico uso admisible de una barra baja en un nombre de
mtodo. Los mtodos declarados como pblicos no deberan contener nunca
una barra baja.
Para las variables de instancia que son declaradas con el modificador "private"
o "protected", el primer carcter 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 seccin 3.3), los nombres de
variables deben empezar siempre con una letra en minscula y seguir la
convencin "camelCaps".
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.
Estilo de cdigo
1. Demarcacin de cdigo PHP: El cdigo PHP debe estar delimitado
siempre por la forma completa de las etiquetas PHP estndar: <?php >.
2. Cadenas de Caracteres:
a. Cadenas Literales de Caracteres: Cuando una cadena es literal (no
contiene sustitucin de variables), el apstrofo o "comilla" debera ser
usado siempre para delimitar la cadena:
Arrays
1. Arrays Indexados Numricamente: No estn permitidos nmeros
negativos como ndices.
$sampleArray = array(
1, 2, 3, 'Zend', 'Studio',
$a, $b, $c,
56.44, $d, 500,
);
$sampleArray = array(
'firstKey' => 'firstValue',
'secondKey' => 'secondValue',
);
Clases
1. Declaracin de clases: Las Clases deben ser nombradas de acuerdo
a las convencin de nombres de Zend Framework.
Las clases que extiendan otras clases o interfaces deberan declarar sus
dependencias en la misma lnea siempre que sea posible.
Funciones y Mtodos
Como en las clases, la llave "{" debe ser escrita en la lnea siguiente al
nombre de la funcin ("one true brace" form). No est permitido un espacio
entre el nombre de la funcin y el parntesis de apertura para los
argumentos.
funcion1(1, 2, 3);
threeArguments(array(
1, 2, 3, 'Zend', 'Studio',
$a, $b, $c,
56.44, $d, 500
), 2, 3);
switch ($numPeople) {
case 1:
break;
case 2:
break;
default:
break;
}
NOTA: En ocasiones, resulta til escribir una declaracin case que salta al
siguiente case al no incluir un break o return dentro de ese case. Para
distinguir estos casos de posibles errores, cualquier declaracin donde
break o return sean omitidos deber contener un comentario indicando que
se omitieron intencionadamente.
Documentacin integrada
2. Archivos: Cada archivo que contenga cdigo PHP debe tener un bloque de
documentacin al principio del archivo que contenga como mnimo las
siguientes etiquetas phpDocumentor:
/**
* Descripcin corta del fichero
*
* Descripcin larga del fichero (si la hubiera)...
*
* LICENSE: Some license information
*
* @category Zend
* @package Zend_Magic
* @subpackage Wand
* @copyright Copyright (c) 2005-2010 Zend Technologies USA
Inc. ()
* @license BSD License
* @version $Id:$
* @link
* @since File available since Release 1.5.0
*/
Si una funcin/mtodo puede lanzar una excepcin, utilice @throws para todos
los tipos de excepciones conocidas:
RECOMENDACIN DE LA ESTRUCTURA DE
DIRECTORIO DEL PROYECTO
<project name="">/
application/
configs/
application.ini
controllers/
helpers/
forms/
layouts/
filters/
helpers/
scripts/
models/
modules/
services/
views/
filters/
helpers/
scripts/
Bootstrap.php
data/
cache/
indexes/
locales/
logs/
sessions/
uploads/
docs/
library/
public/
css/
images/
js/
.htaccess
index.php
scripts/
jobs/
build/
temp/
tests/</project>
1. API:
Sintaxis: @api
Descripcion: Elementos Estructurales con una visibilidad pblica que estn
destinados a ser los componentes, biblioteca o un marco. Se los utiliza en
mtodos.
Ejempo:
/**
* This method will not change until a major release.
*
* @api
*
* @return void
*/
function showVersion()
{
<...>
}
2. Autor:
Sintaxis: @author [name] [<email address>]
Descripcin: Puede ser usado para indicar quien creo la estructura o quien
realizo cambios significativos.
Ejemplo:
/**
* @author My Name
* @author My Name <my.name@example.com>
*/
3. Copyright:
Sintaxis: @copyright [description]
Descripcin: Define quin tiene la propiedad intelectual sobre los elementos
estructurales.
Ejemplo:
/**
* @copyright 1997-2005 The PHP Group
*/
4. Deprecated:
Sintaxis: @deprecated [<version>] [<description>]
Descripcin: Es declarado para todos las asociaciones de estructura de
elementos. Se eliminar en una versin futura, ya que ha quedado obsoleta o
de otro modo no se recomienda su uso.
Ejemplo:
/**
* @deprecated
* @deprecated 1.0.0
* @deprecated No longer used by internal code and not recommended.
* @deprecated 1.0.0 No longer used by internal code and not recommended.
*/
function count()
{
<...>
}
5. Example: d
Sintaxis: @example [location] [<start-line> [<number-of-lines>] ]
[<description>]
Descripcin: Usada para demostrar el uso de la estructura de elementos.
/**
*/
function count()
<...>
6. internal:
*/
function count()
<...>
7. License
Sintaxis: @license [<url>] [name]
Descripcin: Proporciona el nombre y la direccin URL de la
licencia que se aplica a los elementos estructurales y cualquiera
de sus elementos derivados.
Ejemplo:
/**
* @license GPL
*/
8. Method:
Sintaxis: @method [return type] [name]([[type]
[parameter]<, ...>]) [<description>]
Descripcin: Es usado donde la clase contiene el llamado a la funcin
__call() y define algunos definidos por el usuarios.
Ejemplo:
class Parent
<...>
}
/**
*/
<...>
9. Property:
Sintaxis: @property [Type] [name] [<description>]
Descripcin: Es usuada cuando una clase contiene los metodos __get()
y __set()
class Parent
<...>
/**
*/
<...>
10. Return:
Sintaxis: @return [Type] [<description>]
Descripcin: Es posible la documentacin del retorno del tipo de una
funcion o metodo.
Ejemplo: /**
*/
function count()
<...>
11. trhows
Sintaxis: @throws [Type] [<description>]
Descripcin: Mostrar si tiene excepciones y de tipo son y su descripcin.
/**
* 'array'.
*/
function count($items)
<...>
12. version
Sintaxis: @version [<vector>] [<description>]
Descripcin: Indicar la version de la funcion, metodo, clase
Ejemplo:
/**
* @version 1.0.1
*/
class Counter
<...>
/**
*/
class NeoCounter
<...>