Diferencia entre revisiones de «Indice»
(No se muestran 21 ediciones intermedias de 9 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 260: | Línea 259: | ||
} | } | ||
} //fin de la clase | } //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 | ||
Línea 267: | Línea 267: | ||
'''Ejemplos de uso:''' | '''Ejemplos de uso:''' | ||
− | <?php | + | <?php |
− | + | class ProductosController extends ApplicationController { | |
function index(){ | function index(){ | ||
$this->redirect('facturas/nueva', 2); | $this->redirect('facturas/nueva', 2); | ||
} | } | ||
− | + | } | |
− | ?> | + | ?> |
En el ejemplo va a facturas/nueva después de 2 segundos | En el ejemplo va a facturas/nueva después de 2 segundos | ||
Línea 279: | Línea 279: | ||
== post($value) == | == post($value) == | ||
− | Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar al array asociativo. | + | Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar |
− | + | al array asociativo. | |
== get($value) == | == get($value) == | ||
− | Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para | + | Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para pasar al array asociativo. |
− | pasar al array asociativo. | ||
== request($value) == | == request($value) == | ||
− | Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al array asociativo. | + | Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al |
+ | array asociativo. | ||
== render_partial($name) == | == render_partial($name) == | ||
Línea 295: | Línea 295: | ||
'''Ejemplos de uso:''' | '''Ejemplos de uso:''' | ||
− | <?php | + | <?php |
− | + | class ProductosController extends ApplicationController { | |
function index(){ | function index(){ | ||
$this->render_partial('mostrar_menu'); | $this->render_partial('mostrar_menu'); | ||
}//fin del metodo | }//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]) == | == 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: | + | 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 | • controller: A qué controlador se va a redireccionar | ||
• action: A que acción se va a redireccionar | • action: A que acción se va a redireccionar | ||
Línea 315: | Línea 316: | ||
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando están siendo redireccionados en la aplicación. | 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) == | == redirect($url_controlador) == | ||
Realiza un redireccionamiento a otro controlador/accion mediante HTTP. Es útil cuando queremos hacer | 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 | + | una real redirección que incluso cambie la URL que aparece en el explorador. |
− | explorador. | ||
'''Ejemplo:''' | '''Ejemplo:''' | ||
Línea 333: | Línea 332: | ||
''' Ejemplo ''' | ''' Ejemplo ''' | ||
− | <?php | + | <?php |
− | + | class PruebaController extends ApplicationController { | |
function index(){ | function index(){ | ||
$this->render_text("Este es el index"); | $this->render_text("Este es el index"); | ||
Línea 342: | Línea 341: | ||
return $this->route_to('action: index'); | return $this->route_to('action: index'); | ||
} | } | ||
− | + | } | |
− | ?> | + | ?> |
+ | |||
NOTA: Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto | 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. | 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)== | == 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. | + | 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''' | '''Ejemplo''' | ||
− | <?php | + | <?php |
− | + | class PruebaController extends ApplicationController { | |
function accion_ajax(){ | function accion_ajax(){ | ||
$this->set_response(“view”); | $this->set_response(“view”); | ||
} | } | ||
− | + | } | |
− | ?> | + | ?> |
− | |||
== is_alnum($valor) == | == is_alnum($valor) == | ||
Línea 364: | Línea 365: | ||
recibirlos por parte de usuarios. | recibirlos por parte de usuarios. | ||
− | <?php | + | <?php |
− | + | class PruebaController extends ApplicationController { | |
function adicionar(){ | function adicionar(){ | ||
$nombre = $this->request(“nombre”); | $nombre = $this->request(“nombre”); | ||
Línea 374: | Línea 375: | ||
/* ..*/ | /* ..*/ | ||
} | } | ||
− | + | } | |
− | ?> | + | ?> |
− | == | + | == load_record($record) == |
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe | 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 | como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un | ||
Línea 391: | Línea 392: | ||
//Ejemplo2: | //Ejemplo2: | ||
− | $usuario = $this->Usuario->find( | + | $usuario = $this->Usuario->find(); |
$this->load_record($usuario, 'except: id, sexo'); | $this->load_record($usuario, 'except: id, sexo'); | ||
//Ejemplo3: | //Ejemplo3: | ||
− | $usuario = $this->Usuario->find( | + | $usuario = $this->Usuario->find(0); |
$this->load_record($usuario, 'field: nombre, apellido'); | $this->load_record($usuario, 'field: nombre, apellido'); | ||
Línea 411: | Línea 412: | ||
Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios. | 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 | + | <?php |
− | + | class PruebaController extends ApplicationController { | |
function adicionar(){ | function adicionar(){ | ||
$precio = $this->request(“precio”); | $precio = $this->request(“precio”); | ||
− | if($this->is_numeric($precio)= | + | if($this->is_numeric($precio)!= '1'){ |
Flash::error(“Entrada invalida para precio”); | Flash::error(“Entrada invalida para precio”); | ||
return; | return; | ||
Línea 421: | Línea 422: | ||
/* ..*/ | /* ..*/ | ||
} | } | ||
− | + | } | |
− | ?> | + | ?> |
===[[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; } /* ..*/ } } ?>