Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

17
Versión 1.0 Spirit Nueva estructura de directorios Kumbia PHP Framework

description

Paper que muestra los cambios dados en la nueva estructura de directorios incorporada en la versión 1.0 Spirit de KumbiaPHP Framework http://www.kumbiaphp.com

Transcript of Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

Page 1: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

Versión 1.0 SpiritNueva estructura de directorios

KumbiaPHPFramework

Page 2: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

KumbiaPHP Framework en su versión 1.0 incorpora un cambio en la estructura de directorios con la intención de desa-coplar el core del framework de nuestra aplicación (app) y of-recer mayor independencia de las aplicaciones, como se puede apreciar en el gráfico existen dos grandes directorios app y core.

spiritspirit

coreaplicación2 aplicación[n]aplicación1

Page 3: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Ventajas de la nueva estructura de directorio

• Mayor velocidad :-) • Cada aplicación tiene su propio frontcontroller. • Independencia total de nuestra aplicación respecto al core del framework. • Cada aplicación tendrá sus propios directorios (public, temp, helpers, etc). En versiones anteriores si se tenia 40 apli-caciones significaba que todo iba al mismo public (css, img, js, etc). • En cada actualización del framework, sólo se ha de pasar la carpeta de tu aplicación (“app”) a la nueva versión de kumbiaPHP Framework y ya tendremos la última versión del Framework.

Page 4: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

app

public temphelpers views applicationmodelscontrollersconfig model_base

PHP

Este será el directorio sobre el cual trabajamos el 90% mientras desarrolla-mos nuestra aplicación, observamos una lista de directorios y archivos vin-culados a app.

“app” es el nombre de la aplicación

PHP

Page 5: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

core

core

app3 app4app2 app[n]app1

Pueden existir tantas carpetas como aplicaciones se necesiten.

spiritspirit

Page 6: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Archivos de configura-ción del framework:config.ini, routes.ini, databases.ini, boot.ini

Están agrupados los controladores (controllers) y/o módulos. Por defecto se encuentra el controller: page_controller.php

Están agrupados los modelos (models)

config

controllers

models

helpers

Contiene los helpers de usuarios, funciones, librerías, etc, que necesite la aplicación. Normalmente desarrolladas por los usuarios

Son los archivos imá-genes, css, javascript y files, que utilizara la apli-cación

Este directorio contiene las carpetas y archivos creados cuando Kumbia PHP está cacheando un template, view o un partial y cuando se realiza opera-ciones de logger (logs). Necesita permisos de escritura.

temp

views

Están agrupadas las vistas de los controllers. Por defecto están los dir: template/, pages/, partials/ y errors/

public

estr

uctu

ra a

plic

ació

n

Page 7: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Vamos a profundizar más en estos dos impor-tantisimos y a la vez grandes desconocidos, que nos permitiran agilizar muchisimo el pro-ceso de creación de nuestra aplicación si se usan correctamente.

PHP

application

PHP

model_base

Page 8: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Cada vez es mas usado en las aplicaciones creadas en PHP la Programación Orientada a Objetos (POO), KumbiaPHP Framework fomenta el uso de la misma, debemos hacer especial hincapié en el archivo application.php el cual fue concebido como una superclase (ApplicationController) padre de todos los con-troladores.

controllers

PHP

application

PHP

Controller1

PHP

Controller2

Page 9: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Existe una estrecha relación entre apllication.php y los controladores disponibles en el directorio controllers.

Esta relación se basa principalmente en que las variables y metodos creados en el Applica-tionController (application.php), estarán dis-ponibles para ser usados en cualquier contro-lador que tengamos en nuestra aplicación.

PHP

application

initialize() finalize()

PHP

Controller1

PHP

Controller2

métodos

superclase

controladores

Page 10: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

En esta class se encuentran dos métodos principales, dichos métodos se comportan como un filtro.

El método Initialize() se ejecuta justo antes de llamar al controller

El método finalize() se ejecuta después de haber llamado al controller.

PHP

application

Controllers

initialize() finalize()

métodos

superclase

controladores

Page 11: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Veamos un ejemplo funcional de lo que podemos llegar a hacer controlando esta superclase; Agregamos el método hola($nombre) con un parámetro.

El método hola($nombre) estara disponible inmediatamente para todos los controla-dores.

Podríamos acceder directamente al método hola($nombre); de la siguiente manera:

http://dominio.com/controller/hola/jose

http://dominio.com/controller2/hola/jose

PHP

application

hola($nombre)

métodos

superclase

controladores

PHP

Controller1

PHP

Controller2

Page 12: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Así, la forma en la que se relacionan los controladores con el ApplicationController quedaría resumida en el siguiente esquema:

Page 13: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

De la misma manera que se relacionan los controladores con application.php, existe otra relación muy importante entre el archivo model_base.php y los modelos de objeto ActiveRecord ubicados en:models/*.php | models/dir/*.php

Los modelos aqui alojados representan las tablas de nuestra base de datos.

models

PHP

model_base

PHP

model1

PHP

model2

Page 14: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

En la clase ActiveRecord existen una gran cantidad de CallBack, en los que podemos apoyarnos para construir la parte lógica de nuestra aplicación, además los podremos extender con metodos propios.

En este ejemplo hemos usado el método before_save(), nos permite comprobar lo que necesitemos antes de guardar el regis-tro en la base de datos.

PHP

model_base

models

before_save()

métodos

superclaseActiveRecord

modelos

Page 15: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Así, la forma en la que se relacionan los modelos con el ActiveRecord quedaría resumida como sigue:

model1

ActiveRecord

model2

Page 16: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

core

kumbia scaffoldhelpers test vendorsextensionsdocsconsole views

En este directorio se encuentra el núcleo de KumbiaPHP.

Page 17: Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit

KumbiaPHPFramework

Script de consola del framework

Aquí están los archivos de licencia y README.

Extensiones de Kumbi-aPHP, que extiende el core.

console

docs

extensions

helpers

Están los Helpers de las vistas.

Core de KumbiaPHP (dispatcher, router, front-controller).kumbia

views

Plantillas de vistas para las excepciones y otras.

Plantilla para los scaffolds.scaffold

testPruebas del framework.

vendors

Librerías externas al framework (libchart, fpdf, excel, etc.)

estr

uctu

ra c

ore