https://wiki.kumbiaphp.com/api.php?action=feedcontributions&user=Nippur+l&feedformat=atomKumbiaPHP Framework Wiki - Contribuciones del usuario [es]2024-03-28T20:59:29ZContribuciones del usuarioMediaWiki 1.34.1https://wiki.kumbiaphp.com/index.php?title=Indice&diff=1710Indice2009-09-26T02:49:54Z<p>Nippur l: AplicationController</p>
<hr />
<div>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].<br />
<br />
Esta abierto, para que la comunidad ayude a portarlo y mejorarlo.<br />
Más adelante, el manual en PDF se creará de este wiki.<br />
<br />
= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
Este manual es para agradecer a quienes con su tiempo y apoyo en gran o en poca<br />
medida han ayudado a que este framework sea cada día mejor.<br />
A todos ellos Gracias Totales:<br />
Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com<br />
Deivinson Tejeda deivinsontejeda@kumbiaphp.com<br />
Emilio Silveira emilio.rst@kumbiaphp.com<br />
César Caballero aka Phillipo phillipo@kumbiaphp.com<br />
Y a toda la comunidad que rodea a Kumbia, con sus preguntas, notificaciones de errores<br />
(Bug's), aportaciones, etc...<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Historia_de_Kumbia|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#.C2.BFPorque_usar_Kumbia.3F|¿Porque usar Kumbia?]]<br />
#[[Prefacio#Modelo.2C_Vista.2C_Controlador_.28MVC.29|Modelo, Vista, Controlador (MVC)]]<br />
##[[Prefacio#.C2.BFQue_es.3F|¿Que es?]]<br />
##[[Prefacio#Implementaci.C3.B3n_y_uso|Implementación y uso]]<br />
##[[Prefacio#Informaci.C3.B3n_adicional|Información adicional]]<br />
##[[Prefacio#Caso_pr.C3.A1ctico|Caso práctico]]<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#[[Instalar_Kumbia#Requisitos|Requisitos]]<br />
#[[Instalar_Kumbia#Descargar_Kumbia|Descargar Kumbia]]<br />
#[[Instalar_Kumbia#Configuraci.C3.B3n_de_m.C3.B3dulos_.28_apache.2C_php_y_bbdd_.29|Configuración de módulos (Apache, PHP y bbdd)]]<br />
##[[Instalar_Kumbia#Configurando_Apache|Configurando Apache]]<br />
###[[Instalar_Kumbia#.C2.BFPor_qu.C3.A9_es_importante_Mod-Rewrite.3F|¿Por qué es importante Mod-Rewrite?]]<br />
##[[Instalar_Kumbia#Configuraci.C3.B3n_de_PHP|Configuración de PHP]]<br />
###[[Instalar_Kumbia#.C2.BFPorque_Kumbia_utiliza_PHP5.3F|¿Porque Kumbia utiliza PHP5?]]<br />
##[[Instalar_Kumbia#Configurando_BB.DD|Configurando BB.DD]]<br />
###[[Instalar_Kumbia#Configuraci.C3.B3n_de_MySQL|Configuración de MySQL]]<br />
###[[Instalar_Kumbia#Configurando_Oracle|Configurando Oracle]]<br />
#[[Instalar_Kumbia#Configurar_XAMPP|Configurar XAMPP]]<br />
##[[Instalar_Kumbia#Instalando_XAMPP_bajo_Windows|Instalando XAMPP bajo Windows]]<br />
##[[Instalar_Kumbia#Instalando_XAMPP_bajo_GNU.2FLinux|Instalando XAMPP bajo GNU/Linux]]<br />
##[[Instalar_Kumbia#IInstalando XAMPP bajo Debian/Ubuntu Linux|Instalando XAMPP bajo Debian/Ubuntu Linux]]<br />
#[[Instalar_Kumbia#Configurar_Apache2Triad|Configurar Apache2Triad]]<br />
#[[Instalar_Kumbia#Verificar la instalación de Kumbia|Verificar la instalación de Kumbia]]<br />
##[[Instalar_Kumbia#Instalar Kumbia PHP en producción de forma segura| Instalar Kumbia PHP en producción de forma segura]]<br />
<br />
== [[Estructura_de_Kumbia|Estructura de Kumbia]] ==<br />
#[[Estructura_de_Kumbia#Introducci.C3.B3n|Introducción]]<br />
#[[Estructura_de_Kumbia#Directorios_de_entorno|Directorios de entorno]]<br />
##[[Estructura_de_Kumbia#Explicaci.C3.B3n|Explicación]]<br />
#[[Estructura_de_Kumbia#Archivos_de_entorno|Archivos de entorno]]<br />
##[[Estructura_de_Kumbia#config.ini|config.ini]]<br />
###[[Estructura_de_Kumbia#Explicaci.C3.B3n_de_los_par.C3.A1metros_..2Fconfig.2Fconfig.ini|Explicación de los parámetros ./config/config.ini]]<br />
##[[Estructura_de_Kumbia#environment.ini|environment.ini]]<br />
###[[Estructura_de_Kumbia#Estructura_del_archivo_..2Fconfig.2Fenvironment.ini|Estructura del archivo ./config/environment.ini]]<br />
###[[Estructura_de_Kumbia#Explicaci.C3.B3n_de_los_par.C3.A1metros_..2Fconfig.2Fenvironment.ini|Explicación de los parámetros ./config/environment.ini]]<br />
##[[Estructura_de_Kumbia#routes.ini|routes.ini]]<br />
###[[Estructura_de_Kumbia#Explicaci.C3.B3n_de_los_par.C3.A1metros_..2Fconfig.2Froutes.ini|Explicación de los parámetros ./config/routes.ini]]<br />
###[[Estructura_de_Kumbia#Gestionar_extensiones._Ejemplo_pr.C3.A1ctico|Gestionar extensiones. Ejemplo práctico]]<br />
#[[Estructura_de_Kumbia#Resumen|Resumen]]<br />
<br />
== [[Características avanzadas]] ==<br />
#[[Caracter%C3%ADsticas_avanzadas#.C2.A1Par.C3.A1metros_con_Nombre.21|¡Parámetros con Nombre!]]<br />
#[[Caracter%C3%ADsticas_avanzadas#Obtener_valores_en_una_aplicaci.C3.B3n_Kumbia|Obtener valores en una aplicación Kumbia]]<br />
#[[Caracter%C3%ADsticas_avanzadas#Uso_de_Paquetes_.28Namespaces.29|Uso de Paquetes (Namespaces)]]<br />
#[[Caracter%C3%ADsticas_avanzadas#Programaci.C3.B3n_modular|Programación modular]]<br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Creando_una_nueva_aplicaci.C3.B3n|Creando una nueva aplicación]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Hola_Kumbia|Hola Kumbia]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Kumbia_URLS|Kumbia URLS]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Nuestra_Primera_Acci.C3.B3n|Nuestra Primera Acción]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Agregando_m.C3.A1s_Contenido|Agregando más Contenido]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Repitiendo_la_Historia|Repitiendo la Historia]]<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#[[MODELOS#Introducción|Introducción]]<br />
#[[MODELOS#¿Por qué usar una capa de Abstracción?|¿Por qué usar una capa de Abstracción?]]<br />
#[[MODELOS#Capa de Abstracción Independiente en Kumbia|Capa de Abstracción Independiente en Kumbia ]]<br />
#[[MODELOS#Adaptadores Kumbia|Adaptadores Kumbia]]<br />
#[[MODELOS#Esquema de Acceso a BB.DD en Kumbia|Esquema de Acceso a BB.DD en Kumbia]]<br />
#[[MODELOS#Modelos|Modelos]]<br />
##[[MODELOS#Características de los modelos:|Características de los modelos:]]<br />
##[[MODELOS#Acceso Directo a RDBMS|Acceso Directo a RDBMS]]<br />
###[[MODELOS#La Clase DdBase|La Clase DdBase]]<br />
###[[MODELOS#Propiedades de la Clase DB|Propiedades de la Clase DB]]<br />
####[[MODELOS#$db->Id_Connection|$db->Id_Connection]]<br />
####[[MODELOS#$db->dbUser|$db->dbUser]]<br />
####[[MODELOS#$db->dbPass|$db->dbPass]]<br />
####[[MODELOS#$db->dbHost|$db->dbHost]]<br />
####[[MODELOS#$db->dbName|$db->dbName]]<br />
####[[MODELOS#$db->dbPort|$db->dbPort]]<br />
####[[MODELOS#$db->lastError|$db->lastError]]<br />
####[[MODELOS#$db->lastResultQuery|$db->lastResultQuery]]<br />
###[[MODELOS#Métodos de la Clase DB|Métodos de la Clase DB]]<br />
####[[MODELOS#connect()|connect()]]<br />
####[[MODELOS#query()|query()]]<br />
####[[MODELOS#close()|close()]]<br />
####[[MODELOS#fetch_array()|fetch_array()]]<br />
####[[MODELOS#field_name()|field_name()]]<br />
####[[MODELOS#data_seek()|data_seek()]]<br />
####[[MODELOS#affected_rows()|affected_rows()]]<br />
####[[MODELOS#error()|error()]]<br />
####[[MODELOS#no_error()|no_error()]]<br />
####[[MODELOS#find()|find()]]<br />
####[[MODELOS#in_query()|in_query()]]<br />
####[[MODELOS#in_query_assoc()|in_query_assoc()]]<br />
####[[MODELOS#in_query_num()|in_query_num()]]<br />
####[[MODELOS#fetch_one()|fetch_one()]]<br />
####[[MODELOS#table_exists()|table_exists()]]<br />
<br />
==[[ActiveRecord|ACTIVE RECORD]]==<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
===[[CRUD|CRUD: Create, Read, Update, Delete]]===<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
===[[Convenciones en ActiveRecord]]===<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#id|id]]<br />
#[[Convenciones en ActiveRecord#campo_id|campo_id]]<br />
#[[Convenciones en ActiveRecord#campo_at|campo_at]]<br />
#[[Convenciones en ActiveRecord#campo_in|campo_in]]<br />
<br />
===[[Convenciones para RDBMs]]===<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
==ACTIVE RECORD API==<br />
A continuación veremos una referencia de los métodos que posee la clase ActiveRecord y<br />
su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente:<br />
===[[Consultas]]===<br />
Métodos para hacer consulta de Registros:<br />
#[[Consultas#distinct|distinct]]<br />
#[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]]<br />
#[[Consultas#find_by_sql(string $sql)|find_by_sql(string $sql)]]<br />
#[[Consultas#find_first|find_first]]<br />
#[[Consultas#find|find]]<br />
#[[Consultas#select_one(string $select query)|select_one(string $select query)]]<br />
#[[Consultas#select_one(string $select query) (static)|select_one(string $select query) (static)]]<br />
#[[Consultas#exists|exists]]<br />
#[[Consultas#find_all_by|find_all_by]]<br />
#[[Consultas#find_by_*campo*|find_by_*campo*]]<br />
#[[Consultas#find_all_by_*campo*|find_all_by_*campo*]]<br />
<br />
===[[Conteos y Sumatorias]]===<br />
<br />
#[[Conteos y Sumatorias#count|count]]<br />
#[[Conteos y Sumatorias#sum|sum]]<br />
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]]<br />
<br />
===[[Promedios, Máximo y Mínimo]]===<br />
<br />
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#average|average]]<br />
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#maximum|maximum]]<br />
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#minimum|minimum]]<br />
<br />
===[[Creación-Actualización-Borrado de Registros]]===<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
===[[Validación]]===<br />
<br />
#[[Validación#validates_presence_of|validates_presence_of]]<br />
#[[Validación#validates_length_of|validates_length_of]]<br />
#[[Validación#validates_numericality_of|validates_numericality_of]]<br />
#[[Validación#validates_email_in|validates_email_in]]<br />
#[[Validación#validates_uniqueness_of|validates_uniqueness_of]]<br />
#[[Validación#validates_date_in|validates_date_in]]<br />
#[[Validación#validates_format_of|validates_format_of]]<br />
<br />
===[[Transacciones]]===<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
===[[Otros Métodos]]===<br />
<br />
#[[Otros Métodos#sql(string $sql)|sql(string $sql)]]<br />
<br />
===[[Callbacks ActiveRecord]]===<br />
<br />
#[[Callbacks ActiveRecord#Introduccion|Introduccion]]<br />
#[[Callbacks ActiveRecord#before_validation|before_validation]]<br />
#[[Callbacks ActiveRecord#before_validation_on_create|before_validation_on_create]]<br />
#[[Callbacks ActiveRecord#before_validation_on_update|before_validation_on_update]]<br />
#[[Callbacks ActiveRecord#after_validation_on_create|after_validation_on_create]]<br />
#[[Callbacks ActiveRecord#after_validation_on_update|after_validation_on_update]]<br />
#[[Callbacks ActiveRecord#after_validation|after_validation]]<br />
#[[Callbacks ActiveRecord#before_save|before_save]]<br />
#[[Callbacks ActiveRecord#before_update|before_update]]<br />
#[[Callbacks ActiveRecord#before_create|before_create]]<br />
#[[Callbacks ActiveRecord#after_update|after_update]]<br />
#[[Callbacks ActiveRecord#after_create|after_create]]<br />
#[[Callbacks ActiveRecord#after_save|after_save]]<br />
#[[Callbacks ActiveRecord#before_delete|before_delete]]<br />
#[[Callbacks ActiveRecord#after_delete|after_delete]]<br />
<br />
===[[Asociaciones]]===<br />
<br />
#[[Asociaciones#Introducción|Introducción]]<br />
#[[Asociaciones#Pertenece (belongs_to)|Pertenece (belongs_to)]]<br />
#[[Asociaciones#Tiene un (has_one)|Tiene un (has_one)]]<br />
#[[Asociaciones#Tiene muchos (has_many)|Tiene muchos (has_many)]]<br />
#[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]]<br />
<br />
===[[Paginadores]]===<br />
<br />
#[[Paginadores#Paginate|Paginate]]<br />
#[[Paginadores#Paginate_by_sql|Paginate_by_sql]]<br />
#[[Paginadores#Paginando en ActiveRecord|Paginando en ActiveRecord]]<br />
#[[Paginadores#Ejemplo completo de uso del paginador|Ejemplo completo de uso del paginador]]<br />
<br />
=[[Application controller| APPLICATION CONTROLLER]]=<br />
=== [[Application_controller#M.C3.A9todos_de_la_Clase_ApplicationController| Métodos de la Clase ApplicationController]] ===<br />
La clase posee una serie de métodos que son útiles para el trabajo con controladores.<br />
= Métodos de la Clase ApplicationController =<br />
<br />
La clase posee una serie de métodos que son útiles para el trabajo con controladores.<br />
<br />
== render($view) ==<br />
<br />
Visualiza una vista que pertenece al mismo controlador. <br />
<br />
'''Ejemplos de uso:'''<br />
<?php<br />
class ProductosController extends ApplicationController {<br />
function index(){<br />
$this->render('consultar');<br />
}<br />
} //fin de la clase<br />
?><br />
En este caso se visualizaría la vista views/productos/consultar.phtml<br />
<br />
== redirect($url, $seconds=0.5) ==<br />
Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado<br />
<br />
'''Ejemplos de uso:'''<br />
<?php<br />
class ProductosController extends ApplicationController {<br />
function index(){<br />
$this->redirect('facturas/nueva', 2);<br />
}<br />
}<br />
?><br />
<br />
En el ejemplo va a facturas/nueva después de 2 segundos<br />
<br />
== post($value) ==<br />
<br />
Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar al array asociativo.<br />
<br />
<br />
== get($value) ==<br />
<br />
Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para<br />
pasar al array asociativo.<br />
<br />
== request($value) ==<br />
<br />
Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al array asociativo.<br />
<br />
== render_partial($name) ==<br />
Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo:<br />
<br />
'''Ejemplos de uso:'''<br />
<?php<br />
class ProductosController extends ApplicationController {<br />
function index(){<br />
$this->render_partial('mostrar_menu');<br />
}//fin del metodo<br />
}//fin de la clase<br />
?><br />
<br />
En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml<br />
<br />
== route_to([params: valor]) ==<br />
Hace el enrutamiento desde un controlador a otro, o desde una acción a otra. Recibe los parámetros con nombre:<br />
• controller: A qué controlador se va a redireccionar<br />
• action: A que acción se va a redireccionar<br />
• id: Id de la redirección<br />
<br />
'''Ejemplos:'''<br />
return $this->route_to("controller: clientes", "action: consultar", "id:1");<br />
<br />
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando están siendo redireccionados en la aplicación.<br />
<br />
<br />
== redirect($url_controlador) ==<br />
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<br />
explorador.<br />
<br />
'''Ejemplo:'''<br />
$this->redirect(“/productos/query”);<br />
<br />
== cache_layout($minutes) ==<br />
Caché de la vista views/layout/ correspondiente al controlador durante $minutes.<br />
<br />
== not_found($controller, $action) ===<br />
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:<br />
<br />
''' Ejemplo '''<br />
<?php<br />
class PruebaController extends ApplicationController {<br />
function index(){<br />
$this->render_text("Este es el index");<br />
}<br />
function not_found($controller, $action){<br />
Flash::error("No esta definida la accion $action, redireccionando a index...");<br />
return $this->route_to('action: index');<br />
}<br />
}<br />
?><br />
NOTA: Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto<br />
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.<br />
<br />
== set_response($type)==<br />
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.<br />
<br />
'''Ejemplo'''<br />
<?php<br />
class PruebaController extends ApplicationController {<br />
function accion_ajax(){<br />
$this->set_response(“view”);<br />
}<br />
}<br />
?><br />
<br />
<br />
== is_alnum($valor) ==<br />
Evalúa si un campo es alfanumérico o no. Es útil para validar la entrada de datos al<br />
recibirlos por parte de usuarios.<br />
<br />
<?php<br />
class PruebaController extends ApplicationController {<br />
function adicionar(){<br />
$nombre = $this->request(“nombre”);<br />
if($this->is_alnum($nombre)==false){<br />
Flash::error(“Entrada invalidad para precio”);<br />
return;<br />
}<br />
/* ..*/<br />
}<br />
}<br />
?><br />
<br />
== load_reacord($record) ==<br />
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe<br />
como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un<br />
string este debe corresponder al nombre de un modelo Soporta argumento variable.<br />
field: campos a cargar separados por coma<br />
except: campos que no se cargaran separados por coma<br />
suffix: sufijo para el atributo en el controlador<br />
preffix: prefijo para el atributo en el controlador<br />
<br />
//Ejemplo1:<br />
$usuario = $this->Usuario->find(1);<br />
$this->load_record($usuario);<br />
<br />
//Ejemplo2:<br />
$usuario = $this->Usuario->find(1);<br />
$this->load_record($usuario, 'except: id, sexo');<br />
<br />
//Ejemplo3:<br />
$usuario = $this->Usuario->find(1);<br />
$this->load_record($usuario, 'field: nombre, apellido');<br />
<br />
//Ejemplo4:<br />
$usuario = $this->Usuario->find(1);<br />
$this->load_record($usuario, 'preffix: c_');<br />
<br />
//Ejemplo5:<br />
$this->load_record('Usuario');<br />
<br />
//Ejemplo6:<br />
$this->load_record('Usuario', 'field: nombre, apellido');<br />
<br />
== is_numeric($valor) ==<br />
Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios.<br />
<br />
<?php<br />
class PruebaController extends ApplicationController {<br />
function adicionar(){<br />
$precio = $this->request(“precio”);<br />
if($this->is_numeric($precio)==false){<br />
Flash::error(“Entrada invalida para precio”);<br />
return;<br />
}<br />
/* ..*/<br />
}<br />
}<br />
?><br />
<br />
===[[Obtener valores desde el controller]] ===<br />
<br />
===[[ApplicationControllerBase| ApplicationControllerBase (Clase padre)]] ===<br />
<br />
===[[Enrutamiento y redirecciones]] ===<br />
<br />
=[[Vistas|VISTAS Y HELPERS]]=<br />
<br />
#[[Vistas#¿Porque usar Vistas?|¿Porque usar vistas?]]<br />
===[[Vistas#Uso de Vistas|Vistas]]===<br />
===[[Vistas#Uso de Layouts|Layouts]]===<br />
===[[Vistas#Uso de Templates|Templates]]===<br />
===[[Vistas#Uso de Partials|Partials]]===<br />
===[[Vistas#Uso de CCS en Kumbia|CCS en KumbiaPHP]]===<br />
===[[Vistas#Uso de content()|content()]]===<br />
==[[Vistas#|Helpers]]==<br />
<br />
=[[AJAX]]=<br />
<br />
=[[EXTENSIONS (Módulos extras de KumbiaPHP)]]=<br />
==[[Filter]]==<br />
<br />
#[[Filter#Qu.C3.A9_es_un_Filtro| Qué es un Filtro?]]<br />
#[[Filter#Utilizaci.C3.B3n_B.C3.A1sica| Utilización básica]]<br />
#[[Filter#M.C3.A9todos_de_la_clase_Filter| Métodos de la clase Filter]]<br />
<br />
=[[GENERADOR DE FORMULARIOS]]=<br />
<br />
#[[GENERADOR DE FORMULARIOS#|Tipos de Formularios]]<br />
#[[GENERADOR DE FORMULARIOS#|Ventajas Generadores de Formularios]]<br />
#[[GENERADOR DE FORMULARIOS#|Desventajas Generadores de Formularios]]<br />
<br />
=[[EJEMPLOS]]=<br />
<br />
=[[GLOSARIO]]=</div>Nippur lhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=1709Indice2009-09-26T02:23:32Z<p>Nippur l: /* Métodos de la Clase ApplicationController */</p>
<hr />
<div>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].<br />
<br />
Esta abierto, para que la comunidad ayude a portarlo y mejorarlo.<br />
Más adelante, el manual en PDF se creará de este wiki.<br />
<br />
= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
Este manual es para agradecer a quienes con su tiempo y apoyo en gran o en poca<br />
medida han ayudado a que este framework sea cada día mejor.<br />
A todos ellos Gracias Totales:<br />
Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com<br />
Deivinson Tejeda deivinsontejeda@kumbiaphp.com<br />
Emilio Silveira emilio.rst@kumbiaphp.com<br />
César Caballero aka Phillipo phillipo@kumbiaphp.com<br />
Y a toda la comunidad que rodea a Kumbia, con sus preguntas, notificaciones de errores<br />
(Bug's), aportaciones, etc...<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Historia_de_Kumbia|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#.C2.BFPorque_usar_Kumbia.3F|¿Porque usar Kumbia?]]<br />
#[[Prefacio#Modelo.2C_Vista.2C_Controlador_.28MVC.29|Modelo, Vista, Controlador (MVC)]]<br />
##[[Prefacio#.C2.BFQue_es.3F|¿Que es?]]<br />
##[[Prefacio#Implementaci.C3.B3n_y_uso|Implementación y uso]]<br />
##[[Prefacio#Informaci.C3.B3n_adicional|Información adicional]]<br />
##[[Prefacio#Caso_pr.C3.A1ctico|Caso práctico]]<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#[[Instalar_Kumbia#Requisitos|Requisitos]]<br />
#[[Instalar_Kumbia#Descargar_Kumbia|Descargar Kumbia]]<br />
#[[Instalar_Kumbia#Configuraci.C3.B3n_de_m.C3.B3dulos_.28_apache.2C_php_y_bbdd_.29|Configuración de módulos (Apache, PHP y bbdd)]]<br />
##[[Instalar_Kumbia#Configurando_Apache|Configurando Apache]]<br />
###[[Instalar_Kumbia#.C2.BFPor_qu.C3.A9_es_importante_Mod-Rewrite.3F|¿Por qué es importante Mod-Rewrite?]]<br />
##[[Instalar_Kumbia#Configuraci.C3.B3n_de_PHP|Configuración de PHP]]<br />
###[[Instalar_Kumbia#.C2.BFPorque_Kumbia_utiliza_PHP5.3F|¿Porque Kumbia utiliza PHP5?]]<br />
##[[Instalar_Kumbia#Configurando_BB.DD|Configurando BB.DD]]<br />
###[[Instalar_Kumbia#Configuraci.C3.B3n_de_MySQL|Configuración de MySQL]]<br />
###[[Instalar_Kumbia#Configurando_Oracle|Configurando Oracle]]<br />
#[[Instalar_Kumbia#Configurar_XAMPP|Configurar XAMPP]]<br />
##[[Instalar_Kumbia#Instalando_XAMPP_bajo_Windows|Instalando XAMPP bajo Windows]]<br />
##[[Instalar_Kumbia#Instalando_XAMPP_bajo_GNU.2FLinux|Instalando XAMPP bajo GNU/Linux]]<br />
##[[Instalar_Kumbia#IInstalando XAMPP bajo Debian/Ubuntu Linux|Instalando XAMPP bajo Debian/Ubuntu Linux]]<br />
#[[Instalar_Kumbia#Configurar_Apache2Triad|Configurar Apache2Triad]]<br />
#[[Instalar_Kumbia#Verificar la instalación de Kumbia|Verificar la instalación de Kumbia]]<br />
##[[Instalar_Kumbia#Instalar Kumbia PHP en producción de forma segura| Instalar Kumbia PHP en producción de forma segura]]<br />
<br />
== [[Estructura_de_Kumbia|Estructura de Kumbia]] ==<br />
#[[Estructura_de_Kumbia#Introducci.C3.B3n|Introducción]]<br />
#[[Estructura_de_Kumbia#Directorios_de_entorno|Directorios de entorno]]<br />
##[[Estructura_de_Kumbia#Explicaci.C3.B3n|Explicación]]<br />
#[[Estructura_de_Kumbia#Archivos_de_entorno|Archivos de entorno]]<br />
##[[Estructura_de_Kumbia#config.ini|config.ini]]<br />
###[[Estructura_de_Kumbia#Explicaci.C3.B3n_de_los_par.C3.A1metros_..2Fconfig.2Fconfig.ini|Explicación de los parámetros ./config/config.ini]]<br />
##[[Estructura_de_Kumbia#environment.ini|environment.ini]]<br />
###[[Estructura_de_Kumbia#Estructura_del_archivo_..2Fconfig.2Fenvironment.ini|Estructura del archivo ./config/environment.ini]]<br />
###[[Estructura_de_Kumbia#Explicaci.C3.B3n_de_los_par.C3.A1metros_..2Fconfig.2Fenvironment.ini|Explicación de los parámetros ./config/environment.ini]]<br />
##[[Estructura_de_Kumbia#routes.ini|routes.ini]]<br />
###[[Estructura_de_Kumbia#Explicaci.C3.B3n_de_los_par.C3.A1metros_..2Fconfig.2Froutes.ini|Explicación de los parámetros ./config/routes.ini]]<br />
###[[Estructura_de_Kumbia#Gestionar_extensiones._Ejemplo_pr.C3.A1ctico|Gestionar extensiones. Ejemplo práctico]]<br />
#[[Estructura_de_Kumbia#Resumen|Resumen]]<br />
<br />
== [[Características avanzadas]] ==<br />
#[[Caracter%C3%ADsticas_avanzadas#.C2.A1Par.C3.A1metros_con_Nombre.21|¡Parámetros con Nombre!]]<br />
#[[Caracter%C3%ADsticas_avanzadas#Obtener_valores_en_una_aplicaci.C3.B3n_Kumbia|Obtener valores en una aplicación Kumbia]]<br />
#[[Caracter%C3%ADsticas_avanzadas#Uso_de_Paquetes_.28Namespaces.29|Uso de Paquetes (Namespaces)]]<br />
#[[Caracter%C3%ADsticas_avanzadas#Programaci.C3.B3n_modular|Programación modular]]<br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Creando_una_nueva_aplicaci.C3.B3n|Creando una nueva aplicación]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Hola_Kumbia|Hola Kumbia]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Kumbia_URLS|Kumbia URLS]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Nuestra_Primera_Acci.C3.B3n|Nuestra Primera Acción]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Agregando_m.C3.A1s_Contenido|Agregando más Contenido]]<br />
#[[Primera_Aplicaci%C3%B3n_en_Kumbia#Repitiendo_la_Historia|Repitiendo la Historia]]<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#[[MODELOS#Introducción|Introducción]]<br />
#[[MODELOS#¿Por qué usar una capa de Abstracción?|¿Por qué usar una capa de Abstracción?]]<br />
#[[MODELOS#Capa de Abstracción Independiente en Kumbia|Capa de Abstracción Independiente en Kumbia ]]<br />
#[[MODELOS#Adaptadores Kumbia|Adaptadores Kumbia]]<br />
#[[MODELOS#Esquema de Acceso a BB.DD en Kumbia|Esquema de Acceso a BB.DD en Kumbia]]<br />
#[[MODELOS#Modelos|Modelos]]<br />
##[[MODELOS#Características de los modelos:|Características de los modelos:]]<br />
##[[MODELOS#Acceso Directo a RDBMS|Acceso Directo a RDBMS]]<br />
###[[MODELOS#La Clase DdBase|La Clase DdBase]]<br />
###[[MODELOS#Propiedades de la Clase DB|Propiedades de la Clase DB]]<br />
####[[MODELOS#$db->Id_Connection|$db->Id_Connection]]<br />
####[[MODELOS#$db->dbUser|$db->dbUser]]<br />
####[[MODELOS#$db->dbPass|$db->dbPass]]<br />
####[[MODELOS#$db->dbHost|$db->dbHost]]<br />
####[[MODELOS#$db->dbName|$db->dbName]]<br />
####[[MODELOS#$db->dbPort|$db->dbPort]]<br />
####[[MODELOS#$db->lastError|$db->lastError]]<br />
####[[MODELOS#$db->lastResultQuery|$db->lastResultQuery]]<br />
###[[MODELOS#Métodos de la Clase DB|Métodos de la Clase DB]]<br />
####[[MODELOS#connect()|connect()]]<br />
####[[MODELOS#query()|query()]]<br />
####[[MODELOS#close()|close()]]<br />
####[[MODELOS#fetch_array()|fetch_array()]]<br />
####[[MODELOS#field_name()|field_name()]]<br />
####[[MODELOS#data_seek()|data_seek()]]<br />
####[[MODELOS#affected_rows()|affected_rows()]]<br />
####[[MODELOS#error()|error()]]<br />
####[[MODELOS#no_error()|no_error()]]<br />
####[[MODELOS#find()|find()]]<br />
####[[MODELOS#in_query()|in_query()]]<br />
####[[MODELOS#in_query_assoc()|in_query_assoc()]]<br />
####[[MODELOS#in_query_num()|in_query_num()]]<br />
####[[MODELOS#fetch_one()|fetch_one()]]<br />
####[[MODELOS#table_exists()|table_exists()]]<br />
<br />
==[[ActiveRecord|ACTIVE RECORD]]==<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
===[[CRUD|CRUD: Create, Read, Update, Delete]]===<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
===[[Convenciones en ActiveRecord]]===<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#id|id]]<br />
#[[Convenciones en ActiveRecord#campo_id|campo_id]]<br />
#[[Convenciones en ActiveRecord#campo_at|campo_at]]<br />
#[[Convenciones en ActiveRecord#campo_in|campo_in]]<br />
<br />
===[[Convenciones para RDBMs]]===<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
==ACTIVE RECORD API==<br />
A continuación veremos una referencia de los métodos que posee la clase ActiveRecord y<br />
su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente:<br />
===[[Consultas]]===<br />
Métodos para hacer consulta de Registros:<br />
#[[Consultas#distinct|distinct]]<br />
#[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]]<br />
#[[Consultas#find_by_sql(string $sql)|find_by_sql(string $sql)]]<br />
#[[Consultas#find_first|find_first]]<br />
#[[Consultas#find|find]]<br />
#[[Consultas#select_one(string $select query)|select_one(string $select query)]]<br />
#[[Consultas#select_one(string $select query) (static)|select_one(string $select query) (static)]]<br />
#[[Consultas#exists|exists]]<br />
#[[Consultas#find_all_by|find_all_by]]<br />
#[[Consultas#find_by_*campo*|find_by_*campo*]]<br />
#[[Consultas#find_all_by_*campo*|find_all_by_*campo*]]<br />
<br />
===[[Conteos y Sumatorias]]===<br />
<br />
#[[Conteos y Sumatorias#count|count]]<br />
#[[Conteos y Sumatorias#sum|sum]]<br />
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]]<br />
<br />
===[[Promedios, Máximo y Mínimo]]===<br />
<br />
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#average|average]]<br />
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#maximum|maximum]]<br />
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#minimum|minimum]]<br />
<br />
===[[Creación-Actualización-Borrado de Registros]]===<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
===[[Validación]]===<br />
<br />
#[[Validación#validates_presence_of|validates_presence_of]]<br />
#[[Validación#validates_length_of|validates_length_of]]<br />
#[[Validación#validates_numericality_of|validates_numericality_of]]<br />
#[[Validación#validates_email_in|validates_email_in]]<br />
#[[Validación#validates_uniqueness_of|validates_uniqueness_of]]<br />
#[[Validación#validates_date_in|validates_date_in]]<br />
#[[Validación#validates_format_of|validates_format_of]]<br />
<br />
===[[Transacciones]]===<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
===[[Otros Métodos]]===<br />
<br />
#[[Otros Métodos#sql(string $sql)|sql(string $sql)]]<br />
<br />
===[[Callbacks ActiveRecord]]===<br />
<br />
#[[Callbacks ActiveRecord#Introduccion|Introduccion]]<br />
#[[Callbacks ActiveRecord#before_validation|before_validation]]<br />
#[[Callbacks ActiveRecord#before_validation_on_create|before_validation_on_create]]<br />
#[[Callbacks ActiveRecord#before_validation_on_update|before_validation_on_update]]<br />
#[[Callbacks ActiveRecord#after_validation_on_create|after_validation_on_create]]<br />
#[[Callbacks ActiveRecord#after_validation_on_update|after_validation_on_update]]<br />
#[[Callbacks ActiveRecord#after_validation|after_validation]]<br />
#[[Callbacks ActiveRecord#before_save|before_save]]<br />
#[[Callbacks ActiveRecord#before_update|before_update]]<br />
#[[Callbacks ActiveRecord#before_create|before_create]]<br />
#[[Callbacks ActiveRecord#after_update|after_update]]<br />
#[[Callbacks ActiveRecord#after_create|after_create]]<br />
#[[Callbacks ActiveRecord#after_save|after_save]]<br />
#[[Callbacks ActiveRecord#before_delete|before_delete]]<br />
#[[Callbacks ActiveRecord#after_delete|after_delete]]<br />
<br />
===[[Asociaciones]]===<br />
<br />
#[[Asociaciones#Introducción|Introducción]]<br />
#[[Asociaciones#Pertenece (belongs_to)|Pertenece (belongs_to)]]<br />
#[[Asociaciones#Tiene un (has_one)|Tiene un (has_one)]]<br />
#[[Asociaciones#Tiene muchos (has_many)|Tiene muchos (has_many)]]<br />
#[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]]<br />
<br />
===[[Paginadores]]===<br />
<br />
#[[Paginadores#Paginate|Paginate]]<br />
#[[Paginadores#Paginate_by_sql|Paginate_by_sql]]<br />
#[[Paginadores#Paginando en ActiveRecord|Paginando en ActiveRecord]]<br />
#[[Paginadores#Ejemplo completo de uso del paginador|Ejemplo completo de uso del paginador]]<br />
<br />
=[[Application controller| APPLICATION CONTROLLER]]=<br />
=== [[Application_controller#M.C3.A9todos_de_la_Clase_ApplicationController| Métodos de la Clase ApplicationController]] ===<br />
La clase posee una serie de métodos que son útiles para el trabajo con controladores.<br />
== render($view) ==<br />
<br />
Visualiza una vista que pertenece al mismo controlador. <br />
<br />
'''Ejemplos de uso:'''<br />
<?php<br />
class ProductosController extends ApplicationController {<br />
<br />
function index(){<br />
$this->render('consultar');<br />
}<br />
<br />
} //fin de la clase<br />
?><br />
En este caso se visualizaría la vista views/productos/consultar.phtml<br />
<br />
===[[Obtener valores desde el controller]] ===<br />
<br />
===[[ApplicationControllerBase| ApplicationControllerBase (Clase padre)]] ===<br />
<br />
===[[Enrutamiento y redirecciones]] ===<br />
<br />
=[[Vistas|VISTAS Y HELPERS]]=<br />
<br />
#[[Vistas#¿Porque usar Vistas?|¿Porque usar vistas?]]<br />
===[[Vistas#Uso de Vistas|Vistas]]===<br />
===[[Vistas#Uso de Layouts|Layouts]]===<br />
===[[Vistas#Uso de Templates|Templates]]===<br />
===[[Vistas#Uso de Partials|Partials]]===<br />
===[[Vistas#Uso de CCS en Kumbia|CCS en KumbiaPHP]]===<br />
===[[Vistas#Uso de content()|content()]]===<br />
==[[Vistas#|Helpers]]==<br />
<br />
=[[AJAX]]=<br />
<br />
=[[EXTENSIONS (Módulos extras de KumbiaPHP)]]=<br />
==[[Filter]]==<br />
<br />
#[[Filter#Qu.C3.A9_es_un_Filtro| Qué es un Filtro?]]<br />
#[[Filter#Utilizaci.C3.B3n_B.C3.A1sica| Utilización básica]]<br />
#[[Filter#M.C3.A9todos_de_la_clase_Filter| Métodos de la clase Filter]]<br />
<br />
=[[GENERADOR DE FORMULARIOS]]=<br />
<br />
#[[GENERADOR DE FORMULARIOS#|Tipos de Formularios]]<br />
#[[GENERADOR DE FORMULARIOS#|Ventajas Generadores de Formularios]]<br />
#[[GENERADOR DE FORMULARIOS#|Desventajas Generadores de Formularios]]<br />
<br />
=[[EJEMPLOS]]=<br />
<br />
=[[GLOSARIO]]=</div>Nippur l