SlideShare une entreprise Scribd logo
1  sur  27
Guía de Buenas Prácticas para Desarrolladores PHP Juan Minaya leónminayaleon@gmail.com
Agenda Programación IDE Base de Datos Código Estándar Documentación Herramientas y Procesos Colaboración Control de Código
IDE (Integrated development environment) NetBeans ¿Por que? Soporte HTML, JavaScript y CSS Autoformato de Código Refactoring  Autocompletado Generador de Código Cliente SQL (SQL Server, MySQL, Oracle, etc.) Resaltado de código (PHP, JS,CSS,HTML,SQL, etc.) Clientes: FTP, SVN, etc. Plugins: phpDocumentor, Zend Framework, Symfony, Smarty, phpUnit, phpDebug, etc.
IDE (Integrated development environment) MySQL Workbench Generación de Diccionario de Datos Ingeniería Inversa , Sincronización Generación de Formal Normales (1FN, 2FN, 3FN)
Diseño de Base de Datos  ,[object Object]
¿Cuál se ve mejor? CLIENTE, cliente, Cliente, ClienteCuenta, cliente_cuenta, CLIENTE_CUENTA ,[object Object],Mysql Server, SQL Server, Oracle
Diseño de Base de Datos  Mysql Server Distingue entre mayúsculas y minúsculas sólo los nombres de la base de datos y tablas, más no de sus columnas. Variable de configuración lower_case_table_names, valor: 0 -> Las tablas se almacenan con la sensibilidad especificada en la sentencia de creación (Linux). SELECT * FROM cliente; SELECT * FROM CLIENTE; (ERROR) 1 -> Las tablas se almacenan convirtiendo sus nombres a minúsculas (Windows y Mac). SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK) 2 -> Los tablas se almacenan con la sensibilidad especificada en la sentencia de creación. SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK)
Diseño de Base de Datos  Mysql Server  Cita 1: Crear y referirse a bases de datos y tablas usando siempre minúsculas. Esto es lo recomendado para lograr máxima portabilidad y facilidad de uso. Fuente: Documentación Mysql. Cita 2: Si se utilizan tablas InnoDB, se debería establecer lower_case_table_names en 1 en todas las plataformas para forzar a que los nombres sean convertidos a minúsculas. Fuente: Documentación Mysql.
Diseño de Base de Datos  ,[object Object],Todo parte del concepto de entidad (cliente, cuenta, factura, producto, etc.) Modelo ER pretende representar la “realidad”, nombrar las tablas en plural sería la mejor opción, pero…. En la implementación usas muchos identificadores: botones, formularios, grillas, etc. Todos referidos a una entidad (btnCliente, frmCliente) no colocas (btnClientes, frmClientes, chkClientes). Si tuviésemos que representar (cuentas de un cliente) al estilo plural  tendríamos estas opciones: cuentas_clientes ó cuentas_cliente, si usaríamos el estilo singular sólo habría una opción: cuenta_cliente. En otras palabras es una cuestión de costo/beneficio
Diseño de Base de Datos  ¿Se debe usar prefijos? ISO/IEC 11179 (normalización de metadata y metada registry ) No recomienda el uso de Prefijos ni Sufijos, salvo en los casos que en una sola base de datos se compartan muchos proyectos Ejemplos de buenas practicas: Cliente_Cuentas, Cliente_Cuenta SQL Server y Oracle han adoptado este estándar MySQL recomienda usar minúsculas
CONSEJO A En MySQL nombra las base de datos y tablas con minúsculas usando el estilo singular, para el caso de nombres compuestos usar underscore ( _ ), para SQL Server y Oracle sigue el estándar ISO/IEC 11179
PHP Código Estándar Seguir la Guía de Estilos Zend (DRAFT) General Para archivos que sólo contengan código PHP la etiqueta de cierre ( “?>” ) debe ser omitida. Indentation Usar como indent (sangría) 4 espacios. La longitud máxima de cualquier línea de código PHP es de 120 caracteres.
PHP Código Estándar Convención de Nombres Se seguirá la guía de estilos desarrollada por Zend para su proyecto opensource ZF. Clases El nombres de las clases relaciona directamente con los directorios donde se almacenan. Db/Mysql/Adapter.php -> Db_Mysql_Adapter Sólo permitido caracteres alfanuméricos y el underscore (sólo reemplaza el separador de ruta) El uso de números no está recomendado.
PHP Código Estándar Interfaces Debes seguir la misma convención para las clases, pero deberán terminar en _Interface, ejemplos: Application_Db_Interface, Zend_Log_Interface, etc. Funciones y Métodos Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Deben empezar siempre con letra minúsculas. Si contiene más de una palabra, la 1ra letra de cada palabra debe empezar con mayúculas (CamelCase). Ejemplos: obtenerDatos, registrarUsuario, etc.
PHP Código Estándar Variables Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Como las funciones debe empezar con letra minúscula y usar la convención CamelCase. Para variables que son declaradas como privadas o protegidas se debe agregar underscore al inicio. Ejemplo: $_tipos, $_nClientes, etc. Las variables deben describir los datos que van a almacenar, usar $i, $n, $j sólo en bucles.
PHP Código Estándar Constates Deben ir en letras mayúsculas. Sólo permitido caracteres alfanuméricos y carácter underscore para separar palabras que conforman la constante. Para las constates definidas como miembros de una clase se usará el modificador “const”, para constantes globales se usará “define”.
PHP Guía de Estilos Shorttags  ( “<?” )no están permitidos. Strings Para cadenas se usará comilla simple. Para cadenas que contengas apostrofes o variables de sustitución se usará comilla doble Para concatenar cadenas use el operador “.”
PHP Guía de Estilos Clases, Métodos y Funciones Deben ser nombradas de acuerdo a la convención de nombre de Zend. La llave de inicio deben ser escrita una línea debajo del nombre de la clase, métodos ó función. Deben tener un bloque de documentación que se ajusta al estándar de phpDocumentor. Sólo se permite una sola clase en cada archivo PHP. Los métodos deben ser declarados especificando su visibilidad (private, protected, o public)
PHP Guía de Estilos
CONSEJO b Zend es la empresa oficial detrás de PHP, la guía de buenas prácticas desarrollada por esta empresa es de lectura obligatoria par5a todo programador
Documentar tu Código Programa pensando que la persona que mantendrá tu código es un psicópata maniaco que sabe donde vives … que si te encuentra te meterá terror!!!.
Documentar tu Código phpDocumentor Herramienta estándar para documentar código PHP. Crea documentos HTML, PDF, CHM. Se puede usar desde la consola de comandos ó integrarlo a un IDE (NetBeans Zend Studio ó Eclipse) Recomiendo documentar las funciones, clases y métodos que forman pate del dominio de la aplicación (capa de negocio).
Documentar tu Código Clases Deben tener una pequeña descripción sobre el uso de la clases Las variables definidas deben tener usar el tag @var  Métodos Los parámetros de las funciones deben usar el tag @param Si tienen variables de retorno se debe usar el tag @return Si existen bucles  condicionales se deberá detallar el funcionamiento básico del mismo usando comillas dobles (“//”)
Documentar tu Código
Documentar tu Código
Documentar tu Código
¿PREGUNTAS FINALES? ¿Dudas?

Contenu connexe

Tendances

Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1
Oscar Correa
 
Java script
Java script Java script
Java script
Pidusa
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
Juan C
 
Action script 3
Action script 3Action script 3
Action script 3
90000111
 

Tendances (18)

Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
 
Introducción a Javascript I
Introducción a Javascript IIntroducción a Javascript I
Introducción a Javascript I
 
Javascript
JavascriptJavascript
Javascript
 
Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1
 
Java script
Java script Java script
Java script
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Manual de Java
Manual de JavaManual de Java
Manual de Java
 
Java script
Java scriptJava script
Java script
 
Javascript
JavascriptJavascript
Javascript
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Software Clips
Software ClipsSoftware Clips
Software Clips
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 
Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente ♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
 
Action script 3
Action script 3Action script 3
Action script 3
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 

En vedette

Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
Jesus Castagnetto
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
lgcj1989
 
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
ingenran
 
Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6
UVM
 
Readership presentation
Readership presentationReadership presentation
Readership presentation
Yana Welinder
 
Social Experience Design
Social Experience DesignSocial Experience Design
Social Experience Design
Andre Malske
 

En vedette (20)

Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Mejores Prácticas en el Desarrollo del Software
Mejores Prácticas en el Desarrollo del SoftwareMejores Prácticas en el Desarrollo del Software
Mejores Prácticas en el Desarrollo del Software
 
Buenas practicas para el desarrollo de software
Buenas practicas para el desarrollo de softwareBuenas practicas para el desarrollo de software
Buenas practicas para el desarrollo de software
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
 
Includes y $GET
Includes y $GETIncludes y $GET
Includes y $GET
 
Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
mejorando con php
mejorando con phpmejorando con php
mejorando con php
 
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
 
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleBuenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
 
Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
 
Php - Operadores básicos
Php - Operadores básicosPhp - Operadores básicos
Php - Operadores básicos
 
Group by, having, order by, SQL
Group by, having, order by, SQLGroup by, having, order by, SQL
Group by, having, order by, SQL
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)
 
Manual sobre Google drive (2016)
Manual sobre Google drive (2016)Manual sobre Google drive (2016)
Manual sobre Google drive (2016)
 
Readership presentation
Readership presentationReadership presentation
Readership presentation
 
Makkers Manifestatie Co-Green
Makkers Manifestatie Co-Green Makkers Manifestatie Co-Green
Makkers Manifestatie Co-Green
 
Social Experience Design
Social Experience DesignSocial Experience Design
Social Experience Design
 

Similaire à Guía de buenas prácticas para desarrolladores web

Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
Yo ♥ Tacna
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
mandres
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
Doris Aguagallo
 

Similaire à Guía de buenas prácticas para desarrolladores web (20)

Mvc
MvcMvc
Mvc
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Programaciòn
ProgramaciònProgramaciòn
Programaciòn
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp sql
 
Curso introduccionphp sql
Curso introduccionphp sqlCurso introduccionphp sql
Curso introduccionphp sql
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Cuida tu código: Clean Code
Cuida tu código: Clean CodeCuida tu código: Clean Code
Cuida tu código: Clean Code
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php Adwa
 
Php tema 4
Php tema 4Php tema 4
Php tema 4
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
 
9 anulacion
9   anulacion9   anulacion
9 anulacion
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Trabajo escrito de contra jornada
Trabajo escrito de contra jornadaTrabajo escrito de contra jornada
Trabajo escrito de contra jornada
 
Php y MySqul
Php y MySqul  Php y MySqul
Php y MySqul
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEAR
 

Plus de Juan Victor Minaya León

Plus de Juan Victor Minaya León (9)

Software Development
Software DevelopmentSoftware Development
Software Development
 
Software Development with PHP & Laravel
Software Development  with PHP & LaravelSoftware Development  with PHP & Laravel
Software Development with PHP & Laravel
 
GraphQL or RESTful
GraphQL or RESTfulGraphQL or RESTful
GraphQL or RESTful
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Desarrollo de Software 2013
Desarrollo de Software 2013Desarrollo de Software 2013
Desarrollo de Software 2013
 
Propuesta Arquitectura de Mensajería con Xmpp
Propuesta Arquitectura de Mensajería con XmppPropuesta Arquitectura de Mensajería con Xmpp
Propuesta Arquitectura de Mensajería con Xmpp
 
Gestión de Incidencias con Mantis BT
Gestión de Incidencias con Mantis BTGestión de Incidencias con Mantis BT
Gestión de Incidencias con Mantis BT
 
Desarrollo de Software
Desarrollo de SoftwareDesarrollo de Software
Desarrollo de Software
 
Desarrollo para dispositivos Móviles
Desarrollo para dispositivos MóvilesDesarrollo para dispositivos Móviles
Desarrollo para dispositivos Móviles
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Guía de buenas prácticas para desarrolladores web

  • 1. Guía de Buenas Prácticas para Desarrolladores PHP Juan Minaya leónminayaleon@gmail.com
  • 2. Agenda Programación IDE Base de Datos Código Estándar Documentación Herramientas y Procesos Colaboración Control de Código
  • 3. IDE (Integrated development environment) NetBeans ¿Por que? Soporte HTML, JavaScript y CSS Autoformato de Código Refactoring Autocompletado Generador de Código Cliente SQL (SQL Server, MySQL, Oracle, etc.) Resaltado de código (PHP, JS,CSS,HTML,SQL, etc.) Clientes: FTP, SVN, etc. Plugins: phpDocumentor, Zend Framework, Symfony, Smarty, phpUnit, phpDebug, etc.
  • 4. IDE (Integrated development environment) MySQL Workbench Generación de Diccionario de Datos Ingeniería Inversa , Sincronización Generación de Formal Normales (1FN, 2FN, 3FN)
  • 5.
  • 6.
  • 7. Diseño de Base de Datos Mysql Server Distingue entre mayúsculas y minúsculas sólo los nombres de la base de datos y tablas, más no de sus columnas. Variable de configuración lower_case_table_names, valor: 0 -> Las tablas se almacenan con la sensibilidad especificada en la sentencia de creación (Linux). SELECT * FROM cliente; SELECT * FROM CLIENTE; (ERROR) 1 -> Las tablas se almacenan convirtiendo sus nombres a minúsculas (Windows y Mac). SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK) 2 -> Los tablas se almacenan con la sensibilidad especificada en la sentencia de creación. SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK)
  • 8. Diseño de Base de Datos Mysql Server Cita 1: Crear y referirse a bases de datos y tablas usando siempre minúsculas. Esto es lo recomendado para lograr máxima portabilidad y facilidad de uso. Fuente: Documentación Mysql. Cita 2: Si se utilizan tablas InnoDB, se debería establecer lower_case_table_names en 1 en todas las plataformas para forzar a que los nombres sean convertidos a minúsculas. Fuente: Documentación Mysql.
  • 9.
  • 10. Diseño de Base de Datos ¿Se debe usar prefijos? ISO/IEC 11179 (normalización de metadata y metada registry ) No recomienda el uso de Prefijos ni Sufijos, salvo en los casos que en una sola base de datos se compartan muchos proyectos Ejemplos de buenas practicas: Cliente_Cuentas, Cliente_Cuenta SQL Server y Oracle han adoptado este estándar MySQL recomienda usar minúsculas
  • 11. CONSEJO A En MySQL nombra las base de datos y tablas con minúsculas usando el estilo singular, para el caso de nombres compuestos usar underscore ( _ ), para SQL Server y Oracle sigue el estándar ISO/IEC 11179
  • 12. PHP Código Estándar Seguir la Guía de Estilos Zend (DRAFT) General Para archivos que sólo contengan código PHP la etiqueta de cierre ( “?>” ) debe ser omitida. Indentation Usar como indent (sangría) 4 espacios. La longitud máxima de cualquier línea de código PHP es de 120 caracteres.
  • 13. PHP Código Estándar Convención de Nombres Se seguirá la guía de estilos desarrollada por Zend para su proyecto opensource ZF. Clases El nombres de las clases relaciona directamente con los directorios donde se almacenan. Db/Mysql/Adapter.php -> Db_Mysql_Adapter Sólo permitido caracteres alfanuméricos y el underscore (sólo reemplaza el separador de ruta) El uso de números no está recomendado.
  • 14. PHP Código Estándar Interfaces Debes seguir la misma convención para las clases, pero deberán terminar en _Interface, ejemplos: Application_Db_Interface, Zend_Log_Interface, etc. Funciones y Métodos Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Deben empezar siempre con letra minúsculas. Si contiene más de una palabra, la 1ra letra de cada palabra debe empezar con mayúculas (CamelCase). Ejemplos: obtenerDatos, registrarUsuario, etc.
  • 15. PHP Código Estándar Variables Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Como las funciones debe empezar con letra minúscula y usar la convención CamelCase. Para variables que son declaradas como privadas o protegidas se debe agregar underscore al inicio. Ejemplo: $_tipos, $_nClientes, etc. Las variables deben describir los datos que van a almacenar, usar $i, $n, $j sólo en bucles.
  • 16. PHP Código Estándar Constates Deben ir en letras mayúsculas. Sólo permitido caracteres alfanuméricos y carácter underscore para separar palabras que conforman la constante. Para las constates definidas como miembros de una clase se usará el modificador “const”, para constantes globales se usará “define”.
  • 17. PHP Guía de Estilos Shorttags ( “<?” )no están permitidos. Strings Para cadenas se usará comilla simple. Para cadenas que contengas apostrofes o variables de sustitución se usará comilla doble Para concatenar cadenas use el operador “.”
  • 18. PHP Guía de Estilos Clases, Métodos y Funciones Deben ser nombradas de acuerdo a la convención de nombre de Zend. La llave de inicio deben ser escrita una línea debajo del nombre de la clase, métodos ó función. Deben tener un bloque de documentación que se ajusta al estándar de phpDocumentor. Sólo se permite una sola clase en cada archivo PHP. Los métodos deben ser declarados especificando su visibilidad (private, protected, o public)
  • 19. PHP Guía de Estilos
  • 20. CONSEJO b Zend es la empresa oficial detrás de PHP, la guía de buenas prácticas desarrollada por esta empresa es de lectura obligatoria par5a todo programador
  • 21. Documentar tu Código Programa pensando que la persona que mantendrá tu código es un psicópata maniaco que sabe donde vives … que si te encuentra te meterá terror!!!.
  • 22. Documentar tu Código phpDocumentor Herramienta estándar para documentar código PHP. Crea documentos HTML, PDF, CHM. Se puede usar desde la consola de comandos ó integrarlo a un IDE (NetBeans Zend Studio ó Eclipse) Recomiendo documentar las funciones, clases y métodos que forman pate del dominio de la aplicación (capa de negocio).
  • 23. Documentar tu Código Clases Deben tener una pequeña descripción sobre el uso de la clases Las variables definidas deben tener usar el tag @var Métodos Los parámetros de las funciones deben usar el tag @param Si tienen variables de retorno se debe usar el tag @return Si existen bucles condicionales se deberá detallar el funcionamiento básico del mismo usando comillas dobles (“//”)
  • 28. Bibliografía Zend Best Practices ISO/IEC 11179 SQL Server Best Practices Java Best Practice PHP Architect