Diferencia entre revisiones de «Indice»
(No se muestran 50 ediciones intermedias de 14 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 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|PREFACIO]] = | = [[Prefacio|PREFACIO]] = | ||
Línea 110: | Línea 118: | ||
####[[MODELOS#table_exists()|table_exists()]] | ####[[MODELOS#table_exists()|table_exists()]] | ||
− | =[[ActiveRecord|ACTIVE RECORD]]= | + | ==[[ActiveRecord|ACTIVE RECORD]]== |
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]] | #[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]] | ||
Línea 117: | Línea 125: | ||
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]] | #[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]] | ||
− | ==[[CRUD|CRUD: Create, Read, Update, Delete]]== | + | ===[[CRUD|CRUD: Create, Read, Update, Delete]]=== |
#[[CRUD#Creando Registros|Creando Registros]] | #[[CRUD#Creando Registros|Creando Registros]] | ||
Línea 127: | Línea 135: | ||
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]] | #[[CRUD#Propiedades Soportadas|Propiedades Soportadas]] | ||
− | ==[[Convenciones en ActiveRecord]]== | + | ===[[Convenciones en ActiveRecord]]=== |
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]] | #[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]] | ||
Línea 135: | Línea 143: | ||
#[[Convenciones en ActiveRecord#campo_in|campo_in]] | #[[Convenciones en ActiveRecord#campo_in|campo_in]] | ||
− | ==[[Convenciones para RDBMs]]== | + | ===[[Convenciones para RDBMs]]=== |
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]] | #[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]] | ||
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]] | #[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]] | ||
− | =ACTIVE RECORD API= | + | ==ACTIVE RECORD API== |
− | + | A continuación veremos una referencia de los métodos que posee la clase ActiveRecord y | |
− | ==[[Consultas]]== | + | su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente: |
− | + | ===[[Consultas]]=== | |
+ | Métodos para hacer consulta de Registros: | ||
#[[Consultas#distinct|distinct]] | #[[Consultas#distinct|distinct]] | ||
#[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]] | #[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]] | ||
Línea 156: | Línea 165: | ||
#[[Consultas#find_all_by_*campo*|find_all_by_*campo*]] | #[[Consultas#find_all_by_*campo*|find_all_by_*campo*]] | ||
− | ==[[Conteos y Sumatorias]]== | + | ===[[Conteos y Sumatorias]]=== |
#[[Conteos y Sumatorias#count|count]] | #[[Conteos y Sumatorias#count|count]] | ||
Línea 162: | Línea 171: | ||
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]] | #[[Conteos y Sumatorias#count_by_sql|count_by_sql]] | ||
− | ==[[Promedios, Máximo y Mínimo]]== | + | ===[[Promedios, Máximo y Mínimo]]=== |
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#average|average]] | #[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#average|average]] | ||
Línea 168: | Línea 177: | ||
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#minimum|minimum]] | #[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#minimum|minimum]] | ||
− | ==[[Creación-Actualización-Borrado de Registros]]== | + | ===[[Creación-Actualización-Borrado de Registros]]=== |
#[[Creación-Actualización-Borrado de Registros#create|create]] | #[[Creación-Actualización-Borrado de Registros#create|create]] | ||
Línea 179: | Línea 188: | ||
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]] | #[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]] | ||
− | ==[[Validación]]== | + | ===[[Validación]]=== |
#[[Validación#validates_presence_of|validates_presence_of]] | #[[Validación#validates_presence_of|validates_presence_of]] | ||
Línea 189: | Línea 198: | ||
#[[Validación#validates_format_of|validates_format_of]] | #[[Validación#validates_format_of|validates_format_of]] | ||
− | ==[[Transacciones]]== | + | ===[[Transacciones]]=== |
#[[Transacciones#commit()|commit()]] | #[[Transacciones#commit()|commit()]] | ||
Línea 195: | Línea 204: | ||
#[[Transacciones#rollback()|rollback()]] | #[[Transacciones#rollback()|rollback()]] | ||
− | ==[[Otros Métodos]]== | + | ===[[Otros Métodos]]=== |
#[[Otros Métodos#sql(string $sql)|sql(string $sql)]] | #[[Otros Métodos#sql(string $sql)|sql(string $sql)]] | ||
− | ==[[Callbacks ActiveRecord]]== | + | ===[[Callbacks ActiveRecord]]=== |
#[[Callbacks ActiveRecord#Introduccion|Introduccion]] | #[[Callbacks ActiveRecord#Introduccion|Introduccion]] | ||
Línea 217: | Línea 226: | ||
#[[Callbacks ActiveRecord#after_delete|after_delete]] | #[[Callbacks ActiveRecord#after_delete|after_delete]] | ||
− | ==[[Asociaciones]]== | + | ===[[Asociaciones]]=== |
#[[Asociaciones#Introducción|Introducción]] | #[[Asociaciones#Introducción|Introducción]] | ||
Línea 225: | Línea 234: | ||
#[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]] | #[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]] | ||
− | ==[[Paginadores]]== | + | ===[[Paginadores]]=== |
#[[Paginadores#Paginate|Paginate]] | #[[Paginadores#Paginate|Paginate]] | ||
Línea 232: | Línea 241: | ||
#[[Paginadores#Ejemplo completo de uso del paginador|Ejemplo completo de uso del paginador]] | #[[Paginadores#Ejemplo completo de uso del paginador|Ejemplo completo de uso del paginador]] | ||
+ | =[[Application controller| APPLICATION CONTROLLER]]= | ||
+ | === [[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. | ||
+ | = Métodos de la Clase ApplicationController = | ||
+ | |||
+ | La clase posee una serie de métodos que son útiles para el trabajo con controladores. | ||
+ | |||
+ | == render($view) == | ||
+ | |||
+ | 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) == | ||
+ | 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]] === | ||
+ | |||
+ | ===[[ApplicationControllerBase| ApplicationControllerBase (Clase padre)]] === | ||
+ | ===[[Enrutamiento y redirecciones]] === | ||
− | =[[ | + | =[[Vistas|VISTAS Y HELPERS]]= |
− | |||
− | |||
− | |||
− | |||
− | |||
− | =[[ | + | #[[Vistas#¿Porque usar Vistas?|¿Porque usar vistas?]] |
+ | ===[[Vistas#Uso de Vistas|Vistas]]=== | ||
+ | ===[[Vistas#Uso de Layouts|Layouts]]=== | ||
+ | ===[[Vistas#Uso de Templates|Templates]]=== | ||
+ | ===[[Vistas#Uso de Partials|Partials]]=== | ||
+ | ===[[Vistas#Uso de CCS en Kumbia|CCS en KumbiaPHP]]=== | ||
+ | ===[[Vistas#Uso de content()|content()]]=== | ||
+ | ==[[Vistas#|Helpers]]== | ||
=[[AJAX]]= | =[[AJAX]]= | ||
Línea 253: | Línea 452: | ||
=[[GENERADOR DE FORMULARIOS]]= | =[[GENERADOR DE FORMULARIOS]]= | ||
+ | |||
+ | #[[GENERADOR DE FORMULARIOS#|Tipos de Formularios]] | ||
+ | #[[GENERADOR DE FORMULARIOS#|Ventajas Generadores de Formularios]] | ||
+ | #[[GENERADOR DE FORMULARIOS#|Desventajas Generadores de Formularios]] | ||
=[[EJEMPLOS]]= | =[[EJEMPLOS]]= | ||
=[[GLOSARIO]]= | =[[GLOSARIO]]= |
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; } /* ..*/ } } ?>