Diferencia entre revisiones de «Indice»
(No se muestran 24 ediciones intermedias de 10 usuarios) | |||
Línea 1: | Línea 1: | ||
+ | <big>Nuevo manual actualizado para la v1 en español e ingles en [https://github.com/KumbiaPHP/Documentation/blob/master/es/index.md Manual KumbiaPHP en Github] | ||
+ | </big> | ||
+ | |||
Este manual esta portándose del [http://ufpr.dl.sourceforge.net/sourceforge/kumbia/Manual_Kumbia_PHP_Framework_v0-5.pdf Manual PDF de KumbiaPHP Framework]. | Este manual esta portándose del [http://ufpr.dl.sourceforge.net/sourceforge/kumbia/Manual_Kumbia_PHP_Framework_v0-5.pdf Manual PDF de KumbiaPHP Framework]. | ||
Línea 5: | Línea 8: | ||
= [[Agradecimientos|AGRADECIMIENTOS]] = | = [[Agradecimientos|AGRADECIMIENTOS]] = | ||
− | Este manual es para agradecer a | + | 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. |
− | medida han ayudado a que este framework sea cada día mejor. | ||
A todos ellos Gracias Totales: | A todos ellos Gracias Totales: | ||
Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com | Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com | ||
Línea 12: | Línea 14: | ||
Emilio Silveira emilio.rst@kumbiaphp.com | Emilio Silveira emilio.rst@kumbiaphp.com | ||
César Caballero aka Phillipo phillipo@kumbiaphp.com | César Caballero aka Phillipo phillipo@kumbiaphp.com | ||
− | |||
− | |||
− | |||
= [[Prefacio|PREFACIO]] = | = [[Prefacio|PREFACIO]] = | ||
Línea 245: | Línea 244: | ||
=== [[Application_controller#M.C3.A9todos_de_la_Clase_ApplicationController| Métodos de la Clase ApplicationController]] === | === [[Application_controller#M.C3.A9todos_de_la_Clase_ApplicationController| Métodos de la Clase ApplicationController]] === | ||
La clase posee una serie de métodos que son útiles para el trabajo con controladores. | La clase posee una serie de métodos que son útiles para el trabajo con controladores. | ||
+ | = Métodos de la Clase ApplicationController = | ||
+ | |||
+ | La clase posee una serie de métodos que son útiles para el trabajo con controladores. | ||
+ | |||
== render($view) == | == render($view) == | ||
Línea 252: | Línea 255: | ||
<?php | <?php | ||
class ProductosController extends ApplicationController { | class ProductosController extends ApplicationController { | ||
− | |||
function index(){ | function index(){ | ||
$this->render('consultar'); | $this->render('consultar'); | ||
} | } | ||
+ | } //fin de la clase | ||
+ | ?> | ||
− | |||
− | |||
En este caso se visualizaría la vista views/productos/consultar.phtml | En este caso se visualizaría la vista views/productos/consultar.phtml | ||
+ | |||
+ | == redirect($url, $seconds=0.5) == | ||
+ | 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) == | ||
+ | |||
+ | Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar | ||
+ | al array asociativo. | ||
+ | |||
+ | == get($value) == | ||
+ | |||
+ | Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para pasar al array asociativo. | ||
+ | |||
+ | == request($value) == | ||
+ | |||
+ | Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al | ||
+ | array asociativo. | ||
+ | |||
+ | == render_partial($name) == | ||
+ | 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]) == | ||
+ | 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) == | ||
+ | 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) == | ||
+ | Caché de la vista views/layout/ correspondiente al controlador durante $minutes. | ||
+ | |||
+ | == not_found($controller, $action) === | ||
+ | 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)== | ||
+ | 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) == | ||
+ | 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) == | ||
+ | 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; | ||
+ | } | ||
+ | /* ..*/ | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
===[[Obtener valores desde el controller]] === | ===[[Obtener valores desde el controller]] === |
Revisión actual del 11:17 9 nov 2021
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; } /* ..*/ } } ?>