[PHP] Compartiendo

[email protected] (Martin Scotta)
Newsgroups php.general.es
Message-ID <[email protected]>
Hola

Estamos diagramando un WebAPI para PHP 5.2.x
La vamos a implementar sumando fuerzas entre 3 diferentes grupos de
programadores de diferentes empresas.

Aca les mando el primer borrador que generamos.
La idea es simplemente compartirlo con ustedes.

Saludos,
 Mrtn

-----*

Version*
La version minima soportada sera 5.2.0 y siendo válido para cualquier
versión 5.2.x
Las mismas se mantendrán hasta la actualizacion de este estandard,
independientemente de los releases que PHP pueda proporcionar.

*Dependencias*
Cada objeto deberá implementar los mecanismos necesarios para validar en
tiempo de ejecución la presencia/ausencia de los componentes necesarios para
su normal funcionamiento.
Cada objeto deberá presentar una implementación mínima para una instalación
sin ningún componente / extensión extra. En caso de no poder realizarse
dicha implementación se deberá generar una Exception

*Namespaces y Clases*
Todas las clases deberán pertenecer a un Namespace.
Se deberá incluir en el nombre de cada clases el namespace y package,
utilizando el guión bajo ( _ ) como separador.

Tanto para nombre de Namespaces como para nombre de clases se utilizará
notacion CamelCase, a excepción de los acrónimos, los cuales serán escritos
en Mayusculas

El formato es el siguiente:
  Vendor_Package_Class
  Vendor_Package_SubPackage_
Class
  Vendor_Package_Class_SubClass
  PHP_MySQL_Class

Las clases Abstract, Interfaces, como asi también clases derivadas de
Exception deberan contar con el correspondiente sufijo.
  abstract class Example_Controller_ControllerActionAbstract
  interface Test_Foo_BarInterface{}
  class Other_Exception_NotSupportedException extends Exception{}

*Archivos*
La ubicacion de los archivos será relativa a la ubicación del Namespace. El
archivo deberá poseer el mismo nombre (case-sensitive) que el nombre de la
clase, de manera que Test_Foo_Bar deberá estar en Test/Foo/Bar.php siendo
Test el directorio padre de todos los archivos y pudiendo éste estar en
cualquier ubicación.

El uso de require, require_once, include, include_once se encuentra
prohibido.
Cada Namespace o Package podrá proporcionar un autoload para la tarea de la
carga de las clases.
Se proporcionará un autoloader generico para la carga los archivos
iniciales. Dicho autoloader debe encontrarse en
  <Namespace>/<Namespace>.php
Solo dentro de dicho archivo será válido el uso de require/include.

*Declaraciones*
Solo se permite declarar Clases o Interfaces.
No esta permitido el uso de variables globales o funciones de ningún tipo.
Se reserva el uso de las mismas para el uso de las aplicaciones


-- 
Martin Scotta
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.