Indice
Nuevo manual actualizado para la v1 en español e ingles en Manual KumbiaPHP en Github
Este manual esta portándose del Manual PDF de KumbiaPHP Framework.
Esta abierto, para que la comunidad ayude a portarlo y mejorarlo. Más adelante, el manual en PDF se creará de este wiki.
Sumario
- 1 AGRADECIMIENTOS
- 2 PREFACIO
- 3 EMPEZANDO CON KUMBIA PHP FRAMEWORK
- 4 TRABAJANDO CON KUMBIA PHP FRAMEWORK
- 5 MODELOS
- 6 APPLICATION CONTROLLER
- 7 Métodos de la Clase ApplicationController
- 7.1 render($view)
- 7.2 redirect($url, $seconds=0.5)
- 7.3 post($value)
- 7.4 get($value)
- 7.5 request($value)
- 7.6 render_partial($name)
- 7.7 route_to([params: valor])
- 7.8 redirect($url_controlador)
- 7.9 cache_layout($minutes)
- 7.10 not_found($controller, $action) =
- 7.11 set_response($type)
- 7.12 is_alnum($valor)
- 7.13 load_record($record)
- 8 VISTAS Y HELPERS
- 9 AJAX
- 10 EXTENSIONS (Módulos extras de KumbiaPHP)
- 11 GENERADOR DE FORMULARIOS
- 12 EJEMPLOS
- 13 GLOSARIO
AGRADECIMIENTOS[editar]
Este manual es para agradecer a los que con su tiempo y apoyo en gran o en poca medida han ayudado a que este framework sea cada día mejor. A todos ellos Gracias Totales: Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com Deivinson Tejeda deivinsontejeda@kumbiaphp.com Emilio Silveira emilio.rst@kumbiaphp.com César Caballero aka Phillipo phillipo@kumbiaphp.com
PREFACIO[editar]
- Sobre este libro
- Sobre Kumbia
- Sobre la comunidad
- Historia de Kumbia
- Que aporta Kumbia
- ¿Porque usar Kumbia?
- Modelo, Vista, Controlador (MVC)
EMPEZANDO CON KUMBIA PHP FRAMEWORK[editar]
Instalar Kumbia [editar]
- Requisitos
- Descargar Kumbia
- Configuración de módulos (Apache, PHP y bbdd)
- Configurar XAMPP
- Configurar Apache2Triad
- Verificar la instalación de Kumbia
Estructura de Kumbia[editar]
Características avanzadas[editar]
- ¡Parámetros con Nombre!
- Obtener valores en una aplicación Kumbia
- Uso de Paquetes (Namespaces)
- Programación modular
Primera Aplicación en Kumbia[editar]
- Creando una nueva aplicación
- Hola Kumbia
- Kumbia URLS
- Nuestra Primera Acción
- Agregando más Contenido
- Repitiendo la Historia
TRABAJANDO CON KUMBIA PHP FRAMEWORK[editar]
MODELOS[editar]
- Introducción
- ¿Por qué usar una capa de Abstracción?
- Capa de Abstracción Independiente en Kumbia
- Adaptadores Kumbia
- Esquema de Acceso a BB.DD en Kumbia
- Modelos
ACTIVE RECORD[editar]
- Ventajas del ActiveRecord
- Crear un Modelo en Kumbia PHP Framework
- Columnas y Atributos
- Llaves Primarias y el uso de IDs
CRUD: Create, Read, Update, Delete[editar]
- Creando Registros
- Consultando Registros
- El poderoso Find
- Promedio, Contando, Sumando, Mínimo y Máximo
- Actualizando Registros existentes
- Borrando Registros
- Propiedades Soportadas
Convenciones en ActiveRecord[editar]
Convenciones para RDBMs[editar]
ACTIVE RECORD API[editar]
A continuación veremos una referencia de los métodos que posee la clase ActiveRecord y su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente:
Consultas[editar]
Métodos para hacer consulta de Registros:
- distinct
- find_all_by_sql(string $sql)
- find_by_sql(string $sql)
- find_first
- find
- select_one(string $select query)
- select_one(string $select query) (static)
- exists
- find_all_by
- find_by_*campo*
- find_all_by_*campo*
Conteos y Sumatorias[editar]
Promedios, Máximo y Mínimo[editar]
Creación-Actualización-Borrado de Registros[editar]
Validación[editar]
- validates_presence_of
- validates_length_of
- validates_numericality_of
- validates_email_in
- validates_uniqueness_of
- validates_date_in
- validates_format_of
Transacciones[editar]
Otros Métodos[editar]
Callbacks ActiveRecord[editar]
- Introduccion
- before_validation
- before_validation_on_create
- before_validation_on_update
- after_validation_on_create
- after_validation_on_update
- after_validation
- before_save
- before_update
- before_create
- after_update
- after_create
- after_save
- before_delete
- after_delete
Asociaciones[editar]
- Introducción
- Pertenece (belongs_to)
- Tiene un (has_one)
- Tiene muchos (has_many)
- Tiene y pertenece a muchos (has_and_belongs_to_many)
Paginadores[editar]
APPLICATION CONTROLLER[editar]
Métodos de la Clase ApplicationController[editar]
La clase posee una serie de métodos que son útiles para el trabajo con controladores.
Métodos de la Clase ApplicationController[editar]
La clase posee una serie de métodos que son útiles para el trabajo con controladores.
render($view)[editar]
Visualiza una vista que pertenece al mismo controlador.
Ejemplos de uso:
<?php class ProductosController extends ApplicationController { function index(){ $this->render('consultar'); } } //fin de la clase ?>
En este caso se visualizaría la vista views/productos/consultar.phtml
redirect($url, $seconds=0.5)[editar]
Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado
Ejemplos de uso:
<?php class ProductosController extends ApplicationController { function index(){ $this->redirect('facturas/nueva', 2); } } ?>
En el ejemplo va a facturas/nueva después de 2 segundos
post($value)[editar]
Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar al array asociativo.
get($value)[editar]
Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para pasar al array asociativo.
request($value)[editar]
Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al array asociativo.
render_partial($name)[editar]
Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo:
Ejemplos de uso:
<?php class ProductosController extends ApplicationController { function index(){ $this->render_partial('mostrar_menu'); }//fin del metodo }//fin de la clase ?>
En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml
route_to([params: valor])[editar]
Hace el enrutamiento desde un controlador a otro, o desde una acción a otra. Recibe los parámetros
con nombre:
• controller: A qué controlador se va a redireccionar • action: A que acción se va a redireccionar • id: Id de la redirección
Ejemplos: return $this->route_to("controller: clientes", "action: consultar", "id:1");
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando están siendo redireccionados en la aplicación.
redirect($url_controlador)[editar]
Realiza un redireccionamiento a otro controlador/accion mediante HTTP. Es útil cuando queremos hacer una real redirección que incluso cambie la URL que aparece en el explorador.
Ejemplo: $this->redirect(“/productos/query”);
cache_layout($minutes)[editar]
Caché de la vista views/layout/ correspondiente al controlador durante $minutes.
not_found($controller, $action) =[editar]
Puedes definir el método not_found en cualquier controlador, en caso de estar definido se llamará cuando no encuentre definida alguna acción así es más fácil controlar este tipo de errores:
Ejemplo
<?php class PruebaController extends ApplicationController { function index(){ $this->render_text("Este es el index"); } function not_found($controller, $action){ Flash::error("No esta definida la accion $action, redireccionando a index..."); return $this->route_to('action: index'); } } ?>
NOTA: Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto hace que no se haga necesario la implementacion del metodo not_found, ya que cuando no exista un controller o una acción se renderizara dicha vista, esta puede ser totalmente personalizada de manera que sea mas comodo el desarrollo.
set_response($type)[editar]
Especifica el tipo de respuesta que va a generar el controlador. Cuando es el valor de $type es view solamente envía la salida de la vista más no del layout, el template o cualquier cabecera html. Es ideal en salidas AJAX o PDF. Otro valor para $type es XML.
Ejemplo
<?php class PruebaController extends ApplicationController { function accion_ajax(){ $this->set_response(“view”); } } ?>
is_alnum($valor)[editar]
Evalúa si un campo es alfanumérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
<?php class PruebaController extends ApplicationController { function adicionar(){ $nombre = $this->request(“nombre”); if($this->is_alnum($nombre)==false){ Flash::error(“Entrada invalidad para precio”); return; } /* ..*/ } } ?>
load_record($record)[editar]
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un string este debe corresponder al nombre de un modelo Soporta argumento variable.
field: campos a cargar separados por coma except: campos que no se cargaran separados por coma suffix: sufijo para el atributo en el controlador preffix: prefijo para el atributo en el controlador
//Ejemplo1: $usuario = $this->Usuario->find(1); $this->load_record($usuario);
//Ejemplo2: $usuario = $this->Usuario->find(); $this->load_record($usuario, 'except: id, sexo');
//Ejemplo3: $usuario = $this->Usuario->find(0); $this->load_record($usuario, 'field: nombre, apellido');
//Ejemplo4: $usuario = $this->Usuario->find(1); $this->load_record($usuario, 'preffix: c_');
//Ejemplo5: $this->load_record('Usuario');
//Ejemplo6: $this->load_record('Usuario', 'field: nombre, apellido');
== is_numeric($valor) ==
Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
<?php class PruebaController extends ApplicationController { function adicionar(){ $precio = $this->request(“precio”); if($this->is_numeric($precio)!= '1'){ Flash::error(“Entrada invalida para precio”); return; } /* ..*/ } } ?>