2.2.2 Convenciones
Creemos que el CoC (Convention over Configuration) es un excelente paradigma de diseño de software, ya que busca reducir el número de decisiones que los desarrolladores toman, ganando simplicidad sin necesariamente perder flexibilidad. La aplicación de este paradigma significa que un desarrollador tan solo necesita especificar en su código aquellos aspectos no convencionales de la aplicación que está desarrollando, y que le permite trabajar con un nivel de abstracción muy alto sin que tenga que crear una capa de abstracción.
En la presente sección veremos en detalle cuales son las convenciones adoptas en Open Populi Application Framework.
Bases de Datos y Modelo
Las clases del modelo comenzarán con minúsculas, serán nombradas en ingles y en plural. Los nombres de las tablas coincidirán con los nombres de las clases del modelo. Como nombre para las claves primarias de las tablas se deberá elegir
id_ seguido del nombre de la tabla en singular.
persons, actions, applications son nombres de tablas y se corresponderán
con sus homónimas clases del modelo. Donde las claves primarias serán
id_person, id_action, id_application respectivamente.
Controlador
Los nombres de las clases controlador se escriben en ingles, en singular y terminan en Actions.
postActions, personActions, son ejemplos de nombres de controladores
convencionales.
Estas clases están definidas en el archivo actions.class.php que se encuentra en el directorio /actions del modulo
miModulo.
- Contenido del archivo actions.class.php
<?php
class customerActions extends OP_Controller
{
public function index(){
$customers = new customers();
$this->data = array('customers'=> $customers->find("name like 'S%'"));
}
}
?>
Vista
Las vistas son llamadas luego de ejecutarse una acción del controlador, mostrándose según la plantilla de la vista con nombre
miAccion.tpl.php. La acción
lastestsNews() del controlador
newActions, buscará la plantilla con nombre
latestsNews.tpl.php.
Resumen
Dejamos un ejemplo final que muestra las convenciones expuestas arriba:
Tabla de la base de datos:
providers.
Clase del Modelo:
providers miPlataforma/models/
providers.php.
Clase del Controlador
providerActions miPlataforma/apps/
miAplicacion/modules/
provider/actions/actions.class.php.
Plantilla de la Vista:
index.tpl.php miPlataforma/apps/
miAplicacion/modules/
provider/templates/
index.tpl.php.
Usando este conjunto de convenciones, se gana funcionalidad sin caer en las molestias de la configuración.
«««
Organización del Código |
Flujo de la petición http »»»