Edición de «KumbiaPHP Framework Versión 1.0 Spirit»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
{{cleanupbox
 
|image=[[Archivo:Information_icon4.png|45px]]
 
|imageright=[[Archivo:Information_icon4.png|45px]]
 
|texto ='''Este manual corresponde la versión 1.0 beta 1(Desaconsejada). <br />Se recomienda ver la última versión del [https://github.com/KumbiaPHP/Documentation/tree/master/es Manual de KumbiaPHP 1.0]'''
 
}}
 
 
 
== Introducción ==
 
== Introducción ==
 
En la [https://launchpad.net/kumbia/1.0 versión 1.0](<s>antigua 0.5.1</s>) el enfoque primordial que ha considerado el [[Team_Development_KumbiaPHP_Framework|Equipo de Desarrollo]] gira en torno al rendimiento del framework a nivel de velocidad y mantenibilidad del framework en este sentido hemos desacoplado el core de kumbiaphp framework en una nueva estructura obteniendo grandes resultados, de manera que las pruebas en base a esta versión nos indica que vamos en buen camino y ademas es bastante rápida con los cambios aplicados siempre con las mejores practicas de desarrollo.
 
En la [https://launchpad.net/kumbia/1.0 versión 1.0](<s>antigua 0.5.1</s>) el enfoque primordial que ha considerado el [[Team_Development_KumbiaPHP_Framework|Equipo de Desarrollo]] gira en torno al rendimiento del framework a nivel de velocidad y mantenibilidad del framework en este sentido hemos desacoplado el core de kumbiaphp framework en una nueva estructura obteniendo grandes resultados, de manera que las pruebas en base a esta versión nos indica que vamos en buen camino y ademas es bastante rápida con los cambios aplicados siempre con las mejores practicas de desarrollo.
Línea 44: Línea 38:
  
 
*Si en tus modelos utilizas el atributo '''$mode''' para establecer otros datos de conexión, debes reemplazarlo por '''$database''', [[KumbiaPHP_Framework_Versión_1.0_Spirit#databases.ini| ver mas]].
 
*Si en tus modelos utilizas el atributo '''$mode''' para establecer otros datos de conexión, debes reemplazarlo por '''$database''', [[KumbiaPHP_Framework_Versión_1.0_Spirit#databases.ini| ver mas]].
*Si Cargas librerias vía boot.ini ahora se usa libs= en vez de extensions= Y también se quita el prefijo '''kumbia.'''
 
  
'''KumbiaPHP 0.5'''
+
== Nueva Estructura de Directorios ==
<pre>
+
En la versión de KumbiaPHP se incorpora la siguiente estructura de directorios, a continuación se detallan los elementos mas relevantes:
[modules]
 
extensions = kumbia.logger, kumbia.auth
 
</pre>
 
'''KumbiaPHP 1.0'''
 
<pre>
 
[modules]
 
libs = logger, auth
 
</pre>
 
 
 
== Constante en KumbiaPHP==
 
En la version 1.0 Spirit, se ha creado tres constantes cada cual cumple un objetivo especifico con el fin de brindar mayor flexibilidad al momento de manejar rutas (paths) en el framework.
 
 
 
=== APP_PATH ===
 
Constante que contiene la ruta absoluta al directorio donde se encuentra nuestra aplicación (app).
 
  
Ejemplo:
 
 
<pre>
 
<pre>
echo APP_PATH; //la salida es: /var/www/kumbiaphp/app
+
spirit/
</pre>
+
|-- app
 
+
|  |-- application.php
Esta constante es posible utilizarla para incluir archivos que se encuentre bajo el arbol de directorio de la aplicación, por ejemplo imagine que quiere incluir un archivo que esta en el directio '''app/libs/test.php''' la forma de hacerlo seria.
+
|  |-- config
 
+
|  |-- controllers
<pre>
+
|  |-- extensions
   include_once APP_PATH.'libs/test.php';
+
|   |  |-- filters
</pre>
+
|  |  |-- helpers
 
+
|  |  `-- scaffolds
'''NOTA: siempre será mejor utilizar el [[KumbiaPHP_Framework_Versión_1.0_Spirit#Carga_Selectiva.2C_Inyecci.C3.B3n_de_Dependencias_y_el_Componente_Load |Componente Load]] para incluir dependencias.'''
+
|   |-- index.php
 
+
|  |-- libs
=== CORE_PATH ===
+
|  |-- locale
Constante que contiene la ruta absoluta al directorio donde se encuentra el [[KumbiaPHP_Framework_Versión_1.0_Spirit#Explicando_dir_core.2F |core]] de KumbiaPHP.
+
|   |-- model_base.php
 
+
|  |-- models
Ejemplo:
+
|  |-- public
<pre>
+
|  |-- temp
echo CORE_PATH; //la salida es: /var/www/kumbiaphp/core/ 
+
|  `-- views
</pre>
+
|      |-- errors
 
+
|      |-- pages
Para incluir archivos que se encuentre bajo este arbol de directorio es el mismo procedimiento que se explico para la constante APP_PATH
+
|      |-- partials
 
+
|      `-- templates
'''NOTA: El core de KumbiaPHP en la version 1.0 esta totalmente desacoplado del directorio de la aplicación. [[KumbiaPHP_Framework_Versión_1.0_Spirit#Ventajas_de_esta_nueva_estructura_de_directorios|Ventajas de la Estructura de directorio]]'''
+
|-- core
 
+
|-- console
=== PUBLIC_PATH ===
+
|  |-- docs
Constante que contiene la URL para el navegador (browser) y apunta a '''app/public/''' para enlazar imágenes, CSS, JavaScript y todo lo que sea ruta para browser.
+
|  |-- extensions
 
+
|  |  |-- helpers
Ejemplo:
+
|  |  `-- scaffolds
<pre>
+
|  |-- kumbia
//Genera un link que ira al controller: controller y action: action
+
|  |-- libs
<a href="<?php echo PUBLIC_PATH ?>controller/action/" title="Mi Link">Mi Link</a>
+
|  |-- tests
 
+
|  |-- vendors
//Enlaza una imagen que esta en public/img/imagen.jpg
+
|  `-- views
<img src="<?php echo PUBLIC_PATH ?>img/imagen.jpg" alt="Una Imagen" />
+
|      |-- errors
 
+
|      |-- partials
//Enlaza el archivo CSS en public/css/style.css
+
|      `-- templates
<link rel="stylesheet" type="text/css" href="<?php echo PUBLIC_PATH ?>css/style.css"/>
 
 
</pre>
 
</pre>
  
'''NOTA: siempre será mejor hacer uso de los helpers'''
+
Anteriormente [http://www.kumbiaphp.com KumbiaPHP] utilizaba un fichero '''index.php''' el cual servía para enrutar a cada aplicación utilizando inversión de control, esto erá poco flexible y resultaba en un consumo inadecuado de recursos, por lo tanto en esta nueva versión se preparó una nueva estructura de directorios donde cada aplicación posee un directorio independiente con su '''index.php''' (Front Controller) correspondiente el cual se encarga de cargar las librerías del framework.
  
== Nueva Estructura de Directorios ==
+
Copiando el directorio '''app''', tenemos toda la estructura para un nueva aplicación. Ya que podemos tener tantas aplicaciones como necesitemos con un único core.
En la versión de KumbiaPHP se incorpora la siguiente estructura de directorios, a continuación se detallan los elementos mas relevantes:
 
  
<pre>
+
Asimismo el núcleo, las extensiones de KumbiaPHP y otras herramientas que utilizarán las aplicaciones de manera global fueron agrupadas en el directorio core.
spirit/
+
 
|-- app
+
===Ventajas de esta nueva estructura de directorios===
|  |-- application.php
+
* Mayor Velocidad :-)
|   |-- config
+
* Cada aplicación tiene su propio front controller (index.php)
|  |-- controllers
+
* '''Independencia''' total de nuestra aplicación respecto al core del framework.
|   |-- extensions
+
* Cada aplicación tendrá sus '''propios directorios''' (public, temp, libraries, etc). En versiones anteriores si se tenia 40 aplicaciones significaba que todo iba al mismo public (css, img, js, etc).
|   |   |-- filters
+
* En cada '''actualización''' de KumbiaPHP, sólo se ha de pasar la carpeta de tu aplicación ("app") a la nueva versión de kumbiaPHP Framework y ya tendremos la última versión del Framework.
|  |  |-- helpers
+
 
|   |   `-- scaffolds
+
===Explicando dir app===
|   |-- index.php
+
Este será el directorio sobre el cual trabajamos el 90% mientras desarrollamos nuestra aplicación. A continuación se explica en detalle cada uno de los directorios disponible para cada aplicación.
|   |-- libs
+
 
|   |-- locale
+
{| cellpadding="2" cellspacing="2" border="2" style="background: #eee; border: 1px #666 solid; border-collapse: collapse; "
|   |-- model_base.php
+
!Directorio!!Descripción
|-- models
+
|-
|   |-- public
+
|config||Archivos de configuración de nuestra aplicación (config.ini, routes.ini, databases.ini y boot.ini)
|-- temp
+
|-
|   `-- views
+
|controllers||Estan agrupados los controladores (controllers) y/o módulos. Por defecto se encuentra el controller '''pages_controller.php'''
|       |-- errors
+
|-
|      |-- pages
+
|models||Estan agrupados los modelos (models).
|       |-- partials
+
|-
|       `-- templates
+
|views||Estan agrupados las vistas de los controladores (controllers). Por defecto se encuentran los directorios '''templates/''', '''pages/''', '''partials/''' y '''errors/'''
|-- core
+
|-
|   |-- console
+
|extensions||En este directorio se ubican las extensiones para nuestra aplicación, una extensión te permite adicionar nuevas características que serán utilizadas he integradas a la aplicación por medio de las librerías que proporciona [http://www.kumbiaphp.com KumbiaPHP]
|   |-- docs
+
|-
|   |-- extensions
+
|libs||En este directorio se pueden colocar clases propias con fines específicos o librerías externas al framework (vendors). Estas para ser utilizadas en los controladores (controllers) y/o Modelos (models).
|   |   |-- helpers
+
|-
|   |  `-- scaffolds
+
|temp||Este directorio contiene las carpetas y archivos creados cuando [http://www.kumbiaphp.com/ KumbiaPHP] está cacheando un template, view o partial y cuando realiza operaciones de logs. '''Este directorio necesita permisos de escritura'''.
|   |-- kumbia
+
|-
|   |-- libs
+
|public||Agrupa las imágenes, css, javascript y files que serán utilizados por nuestra aplicación
|   |-- tests
+
|-
|   |-- vendors
+
|locale||Agrupa los archivos para el soporte a la internacionalización i18n para la aplicación.
|   `-- views
+
|-
|       |-- errors
+
|'''application.php'''||Super class de los controladores (ApplicationController). 
|       |-- partials
+
|-
|      `-- templates
+
|'''model_base.php'''||Super class de los modelos (ActiveRecord). 
</pre>
+
|}
 +
 
 +
===application.php===
 +
Cada vez es mas usado en las aplicaciones creadas en PHP la Programación Orientada a Objetos (POO), KumbiaPHP Framework fomenta el uso de la misma, debemos hacer especial hincapié en el archivo '''application.php''' el cual fue concebido como una superclase (ApplicationController) padre de todos los controladores.
  
Anteriormente [http://www.kumbiaphp.com KumbiaPHP] utilizaba un fichero '''index.php''' el cual servía para enrutar a cada aplicación utilizando inversión de control, esto erá poco flexible y resultaba en un consumo inadecuado de recursos, por lo tanto en esta nueva versión se preparó una nueva estructura de directorios donde cada aplicación posee un directorio independiente con su '''index.php''' (Front Controller) correspondiente el cual se encarga de cargar las librerías del framework.
+
[[Archivo:Application_kumbiaphp_framework.png|center|thumb|200px|application.php]]
  
Copiando el directorio '''app''', tenemos toda la estructura para un nueva aplicación. Ya que podemos tener tantas aplicaciones como necesitemos con un único core.
+
Como se aprecia en la imagen existe una estrecha relación entre '''apllication.php''' y los controladores disponibles en el directorio controllers/. Esta relación se basa principalmente en que las variables y metodos creados en el '''ApplicationController''' (application.php), estarán disponibles para ser usados en cualquier controlador que tengamos en nuestra aplicación.
  
Asimismo el núcleo, las extensiones de KumbiaPHP y otras herramientas que utilizarán las aplicaciones de manera global fueron agrupadas en el directorio core.
+
En esta clase se encuentran dos métodos principales, dichos métodos se comportan como un filtro antes y después de ejecutar un controller.
  
===Ventajas de esta nueva estructura de directorios===
+
El método '''initialize()''' se ejecuta antes de llamar al controller.
* Mayor Velocidad :-)
+
 
* Cada aplicación tiene su propio front controller (index.php)
+
El método '''finalize()''' se ejecuta despúes de haber llamado al controller.
* '''Independencia''' total de nuestra aplicación respecto al core del framework.
+
 
* Cada aplicación tendrá sus '''propios directorios''' (public, temp, libraries, etc). En versiones anteriores si se tenia 40 aplicaciones significaba que todo iba al mismo public (css, img, js, etc).
+
 
* En cada '''actualización''' de KumbiaPHP, sólo se ha de pasar la carpeta de tu aplicación ("app") a la nueva versión de kumbiaPHP Framework y ya tendremos la última versión del Framework.
+
----
 +
 
 +
=== Ejemplo de application.php ===
  
===Explicando dir app===
+
[[Archivo:Ejemplo_application_kumbiaphp_framework.png|center|thumb|600px|application.php]]
Este será el directorio sobre el cual trabajamos el 90% mientras desarrollamos nuestra aplicación. A continuación se explica en detalle cada uno de los directorios disponible para cada aplicación.
 
  
{| cellpadding="2" cellspacing="2" border="2" style="background: #eee; border: 1px #666 solid; border-collapse: collapse; "
+
=== model_base.php ===
!Directorio!!Descripción
+
De la misma manera como se relacionan los controladores con application.php, existe otra relación muy importante entre el '''model_base.php''' y los modelos. Todo lo que se define en model_base.php estará disponible en los modelos ya que es la class padre.
|-
+
 
|config||Archivos de configuración de nuestra aplicación (config.ini, routes.ini, databases.ini y boot.ini)
+
model_base.php es donde esta definida la super clase '''ActiveRecord'''.
|-
+
 
|controllers||Estan agrupados los controladores (controllers) y/o módulos. Por defecto se encuentra el controller '''pages_controller.php'''
+
  NOTA: Los modelos representan las tablas de nuestra Base de Datos.
|-
+
 
|models||Estan agrupados los modelos (models).
+
 
|-
+
[[Archivo:Model_base_kumbiaphp_framework.png|center|thumb|600px|application.php]]
|views||Estan agrupados las vistas de los controladores (controllers). Por defecto se encuentran los directorios '''templates/''', '''pages/''', '''partials/''' y '''errors/'''
+
 
 +
=== Explicando dir core/ ===
 +
 
 +
{| cellpadding="2" cellspacing="2" border="2" style="background: #eee; border: 1px #666 solid; border-collapse: collapse; "
 +
!Directorio!!Descripción
 
|-
 
|-
|extensions||En este directorio se ubican las extensiones para nuestra aplicación, una extensión te permite adicionar nuevas características que serán utilizadas e integradas a la aplicación por medio de las librerías que proporciona [http://www.kumbiaphp.com KumbiaPHP]
+
|console||En este directorio se ubican los scripts de terminal que te ayudarán a construir y manejar algunos aspectos de nuestra aplicación
 
|-
 
|-
|libs||En este directorio se pueden colocar clases propias con fines específicos o librerías externas al framework (vendors). Estas para ser utilizadas en los controladores (controllers) y/o Modelos (models).
+
|docs||En este directorio se encuentran los detalles de licencia y otros archivos inherentes a la documentación de [http://www.kumbiaphp.com KumbiaPHP]
 
|-
 
|-
|temp||Este directorio contiene las carpetas y archivos creados cuando [http://www.kumbiaphp.com/ KumbiaPHP] está cacheando un template, view o partial y cuando realiza operaciones de logs. '''Este directorio necesita permisos de escritura'''.
+
|extensions|| En este directorio se encuentran las extensiones compartidas por todas las aplicaciones
 
|-
 
|-
|public||Agrupa las imágenes, css, javascript y files que serán utilizados por nuestra aplicación
+
|kumbia|| En este directorio se ubica el núcleo de [http://www.kumbiaphp.com KumbiaPHP]
 
|-
 
|-
|locale||Agrupa los archivos para el soporte a la internacionalización i18n para la aplicación.  
+
|libs|| En este directorio se encuentran las librerias compartidas por todas las aplicaciones, las cuales el [http://wiki.kumbiaphp.com/Team_Development_KumbiaPHP_Framework Equipo de Desarrollo] se responsabiliza por su mantenimiento.
 
|-
 
|-
|'''application.php'''||Super class de los controladores (ApplicationController).
+
|tests||En este directorio se ubican las pruebas unitarias para [http://www.kumbiaphp.com KumbiaPHP]
 
|-
 
|-
|'''model_base.php'''||Super class de los modelos (ActiveRecord). 
+
|vendors||En este directorio se ubican las librerias de terceros que son compartidas por todas las aplicaciones
 
|}
 
|}
  
===application.php===
+
== config.ini ==
Cada vez es mas usado en las aplicaciones creadas en PHP la Programación Orientada a Objetos (POO), KumbiaPHP Framework fomenta el uso de la misma, debemos hacer especial hincapié en el archivo '''application.php''' el cual fue concebido como una superclase (ApplicationController) padre de todos los controladores.
+
Se agregan opciones para un manejo mas apropiado de la configuración del framework, para la aplicación.
  
[[Archivo:Application_kumbiaphp_framework.png|center|thumb|200px|application.php]]
+
*'''models_autoload''' Auto carga de modelos, útil para cuando se manejan muchos modelos no tener la necesidad de cargarlos todos en un momento, sino que se cargan se de acuerdo lo que se necesiten en el controller, todo esto se traduce en mejor rendimiento, [[KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#Carga_selectiva_de_modelos| leer mas]]
 +
*'''metadata_lifetime''' Tiempo de vida de la metadata cacheada.
 +
*'''database''' Base de datos a utilizar, especificada en databases.ini.
 +
*'''production''' Indica si se encuentra en producción.
 +
*'''cache_driver''' driver que se utilizara para el manejo de cache. KumbiaPHP cuenta con tres (3) driver: file, sqlite y memsqlite.
 +
*'''locale''' Localicazión
  
Como se aprecia en la imagen existe una estrecha relación entre '''application.php''' y los controladores disponibles en el directorio controllers/. Esta relación se basa principalmente en que las variables y métodos creados en el '''ApplicationController''' (application.php) estarán disponibles para ser usados en cualquier controlador que tengamos en nuestra aplicación.
+
<pre>;; Configuracion de Aplicacion
  
En esta clase se encuentran dos métodos principales, dichos métodos se comportan como un filtro antes y después de ejecutar un controller.
+
; Explicación de la Configuración:
  
El método '''initialize()''' se ejecuta antes de llamar al controller.
+
; name: Es el nombre de la aplicación
 +
; timezone: Es la zona horaria que usará el framework
 +
; production: Indica si esta en producción
 +
; database: base de datos a utilizar
 +
; dbdate: Formato de Fecha por defecto de la Applicación
 +
; debug: muestra los errores en pantalla (On|off)
 +
; log_exceptions: muestra las excepciones en pantalla (On|off)
 +
; charset: codificacion de caracteres
 +
; models_autoload: Habilita la autocarga de modelos
 +
; cache_driver: driver para la cache (file, sqlite, memsqlite)
 +
; metadata_lifetime: Tiempo de vida de la metadata cacheada
 +
; locale: Localicazion
  
El método '''finalize()''' se ejecuta despúes de haber llamado al controller.
 
  
 +
; ¡¡¡ ADVERTENCIA !!!
 +
; Cuando se efectua el cambio de production=Off, a production=On, es necesario eliminar
 +
; el contenido del directorio de cache de la aplicacion para que se renueve
 +
; la metadata
  
----
+
[application]
 
+
name = "KUMBIA PROJECT"
=== Ejemplo de application.php ===
+
;timezone = "America/New_York"
 +
production = Off
 +
database = development
 +
dbdate = YYYY-MM-DD
 +
debug = On
 +
log_exceptions = On
 +
charset = UTF-8
 +
models_autoload = On
 +
cache_driver = file
 +
;metadata_lifetime = "+1 year"
 +
;locale = es_ES
 +
</pre>
  
[[Archivo:Ejemplo_application_kumbiaphp_framework.png|center|thumb|600px|application.php]]
+
== databases.ini ==
 +
Este archivo viene a remplazar a <s>environment.ini</s> para establecer la configuración de conexión a la base de datos, en este sentido se eliminó el prefijo '''database''', cada sección esta asociada a unos datos de conexión al motor de BD y a su vez esta corresponde al atributo '''database''' del archivo config.ini.
  
=== model_base.php ===
+
Veamos un ejemplo, si en el archivo de configuración '''config/config.ini''' tenemos '''database = development''' KumbiaPHP Framework tomara los datos de conexión que estén en la sección '''[development]'''
De la misma manera como se relacionan los controladores con application.php, existe otra relación muy importante entre el '''model_base.php''' y los modelos. Todo lo que se define en model_base.php estará disponible en los modelos ya que es la class padre.
 
  
model_base.php es donde esta definida la super clase '''ActiveRecord'''.
+
Lo mismo sucede para los modelos, el atributo <s>$mode</s> fue reemplazado por '''$database'''
  
  NOTA: Los modelos representan las tablas de nuestra Base de Datos.
+
<source lang=php>
 +
class Usuarios extends ActiveRecord
 +
{
 +
    public $database = 'test';
 +
}
 +
</source>
  
 +
Ahora KumbiaPHP Framework buscara los datos de conexión de la sección '''[test]''', para el modelo Usuarios.
  
[[Archivo:Model_base_kumbiaphp_framework.png|center|thumb|600px|application.php]]
+
<pre>
 +
; KumbiaPHP Web Framework Configuration
 +
; Parámetros de base de datos
 +
; Utiliza el nombre del controlador nativo (mysql, pgsql, oracle)
 +
; Coloca pdo = On si usas PHP Data Objects
  
=== Explicando dir core/ ===
+
[development]
 +
host = localhost
 +
username = root
 +
password =
 +
name = innogest
 +
type = mysql
  
{| cellpadding="2" cellspacing="2" border="2" style="background: #eee; border: 1px #666 solid; border-collapse: collapse; "
+
[production]
!Directorio!!Descripción
+
host = localhost
|-
+
username = root
|console||En este directorio se ubican los scripts de terminal que te ayudarán a construir y manejar algunos aspectos de nuestra aplicación
+
password =
|-
+
name = test
|docs||En este directorio se encuentran los detalles de licencia y otros archivos inherentes a la documentación de [http://www.kumbiaphp.com KumbiaPHP]
+
type = mysql
|-
+
 
|extensions|| En este directorio se encuentran las extensiones compartidas por todas las aplicaciones
+
[test]
|-
+
host = localhost
|kumbia|| En este directorio se ubica el núcleo de [http://www.kumbiaphp.com KumbiaPHP]
+
username = root
|-
+
password =
|libs|| En este directorio se encuentran las librerias compartidas por todas las aplicaciones, las cuales el [http://wiki.kumbiaphp.com/Team_Development_KumbiaPHP_Framework Equipo de Desarrollo] se responsabiliza por su mantenimiento.
+
name = test
|-
+
type = mysql
|tests||En este directorio se ubican las pruebas unitarias para [http://www.kumbiaphp.com KumbiaPHP]
+
</pre>
|-
 
|vendors||En este directorio se ubican las librerias de terceros que son compartidas por todas las aplicaciones
 
|}
 
  
== config.ini ==
+
== boot.ini ==
Se agregan opciones para un manejo mas apropiado de la configuración del framework, para la aplicación.
+
En este archivo es donde el usuario carga las extensiones (librerías) que trae el framework o bien alguna que deseen agregar.
  
*'''metadata_lifetime''' Tiempo de vida de la metadata cacheada.
+
Extensiones Propias de Kumbiaphp Framework
*'''database''' Base de datos a utilizar, especificada en databases.ini.
+
*session
*'''production''' Indica si se encuentra en producción.
+
*logger
*'''cache_driver''' driver que se utilizara para el manejo de cache. KumbiaPHP cuenta con tres (3) driver: file, sqlite y memsqlite.
+
*auth
*'''locale''' Localización.
+
*date
*'''routes''' Activar enrutamiento estatico.
+
*filter
 +
*acl
 +
*benchmark
 +
*security
  
<pre>;; Configuracion de Aplicacion
+
Extensiones externas al framework
 +
*excel
 +
*fpdf
 +
*phpmailer
 +
*libchart
  
; Explicación de la Configuración:
+
<pre>
 +
; LIBRERIAS DISPONIBLES
 +
; Librerias Propias de KumbiaPHP Framework (libraries)
 +
;  * session
 +
;  * logger
 +
;  * auth
 +
;  * date
 +
;  * filter
 +
;  * acl
 +
;  * benchmark
 +
;  * security
 +
;
 +
; Cargadores en libraries para librerias de terceros (vendors)
 +
;  * excel
 +
;  * fpdf
 +
;  * phpmailer
 +
;  * libchart
  
; name: Es el nombre de la aplicación
 
; timezone: Es la zona horaria que usará el framework
 
; production: Indica si esta en producción
 
; database: base de datos a utilizar
 
; dbdate: Formato de Fecha por defecto de la Applicación
 
; debug: muestra los errores en pantalla (On|off)
 
; log_exceptions: muestra las excepciones en pantalla (On|off)
 
; charset: codificacion de caracteres
 
; cache_driver: driver para la cache (file, sqlite, memsqlite)
 
; metadata_lifetime: Tiempo de vida de la metadata cacheada
 
; locale: Localizacion
 
; routes: Activar enrutamiento estatico
 
  
 +
[modules]
 +
libs = logger
 +
</pre>
  
; ¡¡¡ ADVERTENCIA !!!
+
Es decir, se usa libs= en vez de extensions=
; Cuando se efectua el cambio de production=Off, a production=On, es necesario eliminar
+
Y también se quita el prefijo kumbia.
; el contenido del directorio de cache de la aplicacion para que se renueve
 
; la metadata
 
  
[application]
+
'''KumbiaPHP 0.5'''
name = "KUMBIA PROJECT"
+
<pre>
;timezone = "America/New_York"
+
[modules]
production = Off
+
libs = kumbia.logger, kumbia.auth
database = development
+
</pre>
dbdate = YYYY-MM-DD
+
'''KumbiaPHP 1.0'''
debug = On
+
<pre>
log_exceptions = On
+
[modules]
charset = UTF-8
+
libs = logger, auth
cache_driver = file
 
;metadata_lifetime = "+1 year"
 
;locale = es_ES
 
;routes = On
 
 
</pre>
 
</pre>
  
== databases.ini ==
+
== Router ==
Este archivo viene a remplazar a <s>environment.ini</s> para establecer la configuración de conexión a la base de datos, en este sentido se eliminó el prefijo '''database''', cada sección esta asociada a unos datos de conexión al motor de BD y a su vez esta corresponde al atributo '''database''' del archivo config.ini.
+
Mejoras de Rendimiento.
  
Veamos un ejemplo, si en el archivo de configuración '''config/config.ini''' tenemos '''database = development''' KumbiaPHP Framework tomara los datos de conexión que estén en la sección '''[development]'''
+
== Dispatcher ==
 +
Mejoras de Rendimiento.
  
Lo mismo sucede para los modelos, el atributo <s>$mode</s> fue reemplazado por '''$database'''
+
== Clase Kumbia ==
 +
Mejoras de Rendimiento.
  
<source lang=php>
+
== Vistas ==
class Usuarios extends ActiveRecord
+
[[Imagen:Vistas_1.0_spirit.jpg|Estructura de Vistas KumbiaPHP Framework V1.0 Spirit|right|frameless|400px]]
{
+
Kumbia posee un sistema de presentación basado en Vistas (Views) que viene siendo el tercer componente del sistema [http://es.wikipedia.org/wiki/Modelo_Vista_Controlador MVC], el framework permite mediante plantillas que son reutilizables para no repetir código.
    public $database = 'test';
 
}
 
</source>
 
  
Ahora KumbiaPHP Framework buscara los datos de conexión de la sección '''[test]''', para el modelo Usuarios.
+
Las vistas deberían contener una cantidad mínima de código en PHP para que fuese suficientemente entendible por un diseñador Web y además, para dejar a las vistas sólo las tareas de visualizar los resultados generados por los controladores y presentar las capturas de datos para usuarios.
  
<pre>
+
En la [https://launchpad.net/kumbia/0.5.1 versión 1.0](<s>antigua 0.5.1</s>) se incorporan dos(02) nuevos directorios en el directorio de vistas de nuestra aplicación los cuales son:
; KumbiaPHP Web Framework Configuration
+
#views/templates/
; Parámetros de base de datos
+
#views/partials/
; Utiliza el nombre del controlador nativo (mysql, pgsql, oracle)
 
; Coloca pdo = On si usas PHP Data Objects
 
  
[development]
+
=== views/templates/ ===
host = localhost
+
Los [http://en.wikipedia.org/wiki/Template_(file_format) Template] son un tipo de archivo pre-formateado utilizado como base para otros archivos.
username = root
 
password = 1qaz2WSX
 
name = test
 
type = mysql
 
  
[production]
+
En este directorio esta la capa mas externa de nuestras vistas, para aclarar esta idea en esta es donde se coloca la estructura del documento XHTML (doctype, html, head, etc) en la forma como se trabaja en la <s>versión 0.5</s> esto es representado por el archivo <s>'''views/index.phtml'''</s> de esta forma no existe una flexibilidad de manera que podamos cambiar ese template, en la [https://launchpad.net/kumbia/1.0 versión 1.0] se crea un directorio '''views/templates/''' por defecto existe el archivo '''default.phtml''' pero podemos agregar cuantos se desee y poderlo cambiar desde nuestro controlador de la siguiente forma:
host = localhost
 
username = root
 
password = 1qaz2WSX
 
name = test
 
type = mssql
 
  
[test]
+
<source lang=php>
host = localhost
+
class PruebaController extends ApplicationController
username = root
+
{
password = 1qaz2WSX
+
    public $template = 'plantilla';
name = test
+
}
type = mssql
+
</source>
</pre>
 
  
== boot.ini ==
+
El atributo '''$template''' existe en la super clase '''Controller''' y tiene un valor por defecto (default) esto significa que el sistema de plantillas de KumbiaPHP Framework buscara dentro de directorio views/templates/ el valor que le demos, por defecto buscara '''default.phtml''' pero en otro caso que veamos conveniente podría ser otro template tal como se muestra en el ejemplo seria '''plantilla.phtml'''
En este archivo fue eliminado, ahora se recomienda la carga explicita con '''require''' o '''include''' o en su defecto aprovechar la autocarga de librerias de KumbiaPHP.
 
O mejor usar el Load::lib('lib')
 
  
== Router ==
+
En la '''version 0.5''' para determinar en que parte del template se debe renderizar se hacia uso de la función "content", ahora esa función se encapsuló en la clase View y se utiliza de la siguiente manera.
Mejoras de Rendimiento.
 
  
== Dispatcher ==
+
<source lang=php >
Mejoras de Rendimiento.
 
  
== Clase Kumbia ==
+
Este es mi template
Mejoras de Rendimiento.
+
 
 +
<?php View::content() ?>
 +
</source>
  
== Vistas ==
+
'''View::content()''' puede ubicarse en cualquier lugar del template.
[[Imagen:Vistas_1.0_spirit.jpg|Estructura de Vistas KumbiaPHP Framework V1.0 Spirit|right|frameless|400px]]
 
Kumbia posee un sistema de presentación basado en Vistas (Views) que viene siendo el tercer componente del sistema [http://es.wikipedia.org/wiki/Modelo_Vista_Controlador MVC], el framework permite mediante plantillas que son reutilizables para no repetir código.
 
  
Las vistas deberían contener una cantidad mínima de código en PHP para que fuese suficientemente entendible por un diseñador Web y además, para dejar a las vistas sólo las tareas de visualizar los resultados generados por los controladores y presentar las capturas de datos para usuarios.
+
=== views/partials/ ===
 +
Los partials ([http://es.wikipedia.org/wiki/Widget#Los_widget_en_el_.C3.A1mbito_de_la_programaci.C3.B3n_gr.C3.A1fica widget]) son pequeñas vistas que pueden incluirse dentro de otra vista para evitar repetir código, en la '''versión 0.5''' la convención que se tiene es que ha comenzar el nombre del archivo con un underscore(_) ejemplo, '''_partials.phtml''' y estar dentro del directorio de vistas de controlador que lo invoca, en la [https://launchpad.net/kumbia/0.5.1 versión 1.0](<s>antigua 0.5.1</s>) con la finalidad de ofrecer mayor flexibilidad en el manejo de las vistas se ha creado el directorio '''views/partials/''' donde se han de colocar los partials con esto quitamos la convención de los nombres de los partials, de igual forma ya no se encuentran atados a los controladores tal como pasaba en la '''versión 0.5'''.
 +
Los partials pueden representar cualquier tipo de [http://es.wikipedia.org/wiki/GUI Interfaz de Usuario], importante destacar que los partials pueden ser renderizados (mostrados) desde cualquier nivel de vista donde lo necesitemos.
  
En la [https://launchpad.net/kumbia/0.5.1 versión 1.0](<s>antigua 0.5.1</s>) se incorporan dos(02) nuevos directorios en el directorio de vistas de nuestra aplicación los cuales son:
+
Ejemplo:
#views/templates/
 
#views/partials/
 
  
=== views/templates/ ===
+
'''views/partials/fecha.phtml'''
Los [http://en.wikipedia.org/wiki/Template_(file_format) Template] son un tipo de archivo pre-formateado utilizado como base para otros archivos.
+
<source lang=php >
 +
<div style='background: #333eee; padding: 15px 10px 15px 10px; text-align: center'>
 +
      <i><?php echo date('Y-m-d'); ?></i>
 +
</div>
 +
</source>
  
En este directorio esta la capa mas externa de nuestras vistas, para aclarar esta idea en esta es donde se coloca la estructura del documento XHTML (doctype, html, head, etc) en la forma como se trabaja en la <s>versión 0.5</s> esto es representado por el archivo <s>'''views/index.phtml'''</s> de esta forma no existe una flexibilidad de manera que podamos cambiar ese template, en la [https://launchpad.net/kumbia/1.0 versión 1.0] se crea un directorio '''views/templates/''' por defecto existe el archivo '''default.phtml''' pero podemos agregar cuantos se desee y poderlo cambiar desde nuestro controlador de la siguiente forma:
+
Como se aprecia este partials solo mostrará la fecha actual cuando sea invocado, pero como se menciono antes puede contener cualquier información para el usuario, pero aun falta hacer un llamado a este partials para que el mismo sea mostrado este llamado puede ser desde cualquier nivel del sistema de plantilla que ofrece el framework, en la'''versión 0.5''' se hacia uso de la funcion "render_partial", sin embargo con la finalidad de obtener myor orden e intuitividad, esta función se encapsulo en la clase '''View'''y basta con hacer en la vista (Templates, views) lo siguiente.
  
<source lang=php>  
+
<source lang=php >
  class PruebaController extends ApplicationController
+
  <?php View::partial('fecha') ?>
{
 
    public $template = 'plantilla';
 
}
 
 
</source>
 
</source>
  
El atributo '''$template''' existe en la super clase '''Controller''' y tiene un valor por defecto (default) esto significa que el sistema de plantillas de KumbiaPHP Framework buscara dentro de directorio views/templates/ el valor que le demos, por defecto buscara '''default.phtml''' pero en otro caso que veamos conveniente podría ser otro template tal como se muestra en el ejemplo seria '''plantilla.phtml'''
 
 
En la '''version 0.5''' para determinar en que parte del template se debe renderizar se hacia uso de la función "content", ahora esa función se encapsuló en la clase View y se utiliza de la siguiente manera.
 
  
 +
'''Describiendo la función de manera mas detallada:'''
 
<source lang=php >
 
<source lang=php >
 
+
  View::partial($partial, $time=false, $params=array())
Este es mi template
 
 
 
<?php View::content() ?>
 
 
</source>
 
</source>
  
'''View::content()''' puede ubicarse en cualquier lugar del template.
+
Para cachear los partials, el tiempo de cacheo debe indicarse con el formato de strtotime tal como lo utiliza el componente cache.
  
=== views/partials/ ===
+
<source lang=php >
Los partials ([http://es.wikipedia.org/wiki/Widget#Los_widget_en_el_.C3.A1mbito_de_la_programaci.C3.B3n_gr.C3.A1fica widget]) son pequeñas vistas que pueden incluirse dentro de otra vista para evitar repetir código, en la '''versión 0.5''' la convención que se tiene es que ha comenzar el nombre del archivo con un underscore(_) ejemplo, '''_partials.phtml''' y estar dentro del directorio de vistas de controlador que lo invoca, en la [https://launchpad.net/kumbia/0.5.1 versión 1.0](<s>antigua 0.5.1</s>) con la finalidad de ofrecer mayor flexibilidad en el manejo de las vistas se ha creado el directorio '''views/partials/''' donde se han de colocar los partials con esto quitamos la convención de los nombres de los partials, de igual forma ya no se encuentran atados a los controladores tal como pasaba en la '''versión 0.5'''.
+
  <?php View::partial('fecha', '+4 days') ?>
Los partials pueden representar cualquier tipo de [http://es.wikipedia.org/wiki/GUI Interfaz de Usuario], importante destacar que los partials pueden ser renderizados (mostrados) desde cualquier nivel de vista donde lo necesitemos.
+
</source>  
  
Ejemplo:
+
Si no se desea cachear, se indica como segundo argumento "false", el cual es el valor por defecto
 
 
'''views/partials/fecha.phtml'''
 
<source lang=php >
 
<div style='background: #333eee; padding: 15px 10px 15px 10px; text-align: center'>
 
      <i><?php echo date('Y-m-d'); ?></i>
 
</div>
 
</source>
 
 
 
Como se aprecia este partials solo mostrará la fecha actual cuando sea invocado, pero como se menciono antes puede contener cualquier información para el usuario, pero aun falta hacer un llamado a este partials para que el mismo sea mostrado este llamado puede ser desde cualquier nivel del sistema de plantilla que ofrece el framework, en la'''versión 0.5''' se hacia uso de la funcion "render_partial", sin embargo con la finalidad de obtener mayor orden e intuitividad, esta función se encapsulo en la clase '''View''',  y basta con hacer en la vista (Templates, views) lo siguiente.
 
 
 
<source lang=php >
 
<?php View::partial('fecha') ?>
 
</source>
 
 
 
 
 
'''Describiendo la función de manera mas detallada:'''
 
<source lang=php >
 
  View::partial($partial, $time=false, $params=array())
 
</source>
 
 
 
Para cachear los partials, el tiempo de cacheo debe indicarse con el formato de strtotime tal como lo utiliza el componente cache.
 
 
 
<source lang=php >
 
  <?php View::partial('fecha', '+4 days') ?>
 
</source>
 
 
 
Si no se desea cachear, se indica como segundo argumento "false", el cual es el valor por defecto
 
  
 
<source lang=php >
 
<source lang=php >
Línea 415: Línea 401:
 
</source>  
 
</source>  
  
También es posible pasar variables al partial utilizando parámetros con nombre o utilizando como argumento un array. Si estos parámetros se pasan en forma de array soporta cualquier tipo de dato (objecto, array, etc).
+
También es posible pasar variables al partial utilizando parámetros con nombre o utilizando como argumento un array. Si estos parámetros son se pasan en forma de array soporta cualquier tipo de dato (objecto, array, etc).
  
 
<source lang=php >
 
<source lang=php >
Línea 447: Línea 433:
 
</source>
 
</source>
  
Con la intención de ofrecer mayor comodidad, KumbiaPHP también hace posible obtener una instancia de un modelo directamente haciendo uso del método '''[[KumbiaPHP_Framework_Versión_1.0_Spirit#Load::model.28.24model.29 |Load::model($modelo)]]'''.
+
KumbiaPHP con la intención de ofrecer mayor comodidad tambien posible obtener una instancia de un modelo directamente haciendo uso del método '''[[KumbiaPHP_Framework_Versión_1.0_Spirit#Load::model.28.24model.29 |Load::model($modelo)]]'''.
  
 
<source lang=php >
 
<source lang=php >
Línea 458: Línea 444:
 
Este método de la clase '''View''' viene a remplazar la función '''content()''', esta se utiliza para indicar donde [http://www.kumbiaphp.com KumbiaPHP] debe renderizar (mostrar) el contenido almacenado en el buffer de salida, es decir el próximo nivel de la vista.
 
Este método de la clase '''View''' viene a remplazar la función '''content()''', esta se utiliza para indicar donde [http://www.kumbiaphp.com KumbiaPHP] debe renderizar (mostrar) el contenido almacenado en el buffer de salida, es decir el próximo nivel de la vista.
  
Su uso para las vistas de las acciones esta íntimamente ligado a los '''echo''' o '''print''' que efectué el usuario, asimismo determina el lugar donde se mostrarán los mensajes '''Flash''' provenientes de ActiveRecord o los propios. Ejemplo:
+
Su uso para las vistas de las acciones esta íntimamente ligado a los '''echo''' o '''print''' que efectué el usuario, asimismo determina el lugar donde se mostrarán los los mensajes '''Flash''' provenientes de ActiveRecord o los propios. Ejemplo:
  
 
<source lang=php >
 
<source lang=php >
Línea 481: Línea 467:
  
 
===View::helpers($helper)===
 
===View::helpers($helper)===
Un '''''helpers''''' representa una ayuda a nivel de las vistas (view), esto quiere decir siendo consistente con el m'''V'''c solo deben ser utilizados en las vistas.
+
Un '''''helpers''''' representa una ayuda a nivel de las vistas (view), esto quiere decir siendo consistente con el m'''V'''c solo deben ser utilizados en las vitas.
  
 
Los '''''helpers''''' estan ubicados en '''miapp/extensions/helpers/''', en ese directorio pueden existir tantos helpers como necesitemos [http://www.kumbiaphp.com KumbiaPHP], pero tambien pueden existir helpers en '''core/extensions/helpers/''' en estos casos el framework da prioridad a los helpers ubicados en el directorio de la aplicación, esto quiere decir que si existen dos archivos con el mismo nombre en los directorios helpers antes descrito [http://www.kumbiaphp.com KumbiaPHP] cargara el que se encuentra ubicado en el directorio de la aplicación (app).
 
Los '''''helpers''''' estan ubicados en '''miapp/extensions/helpers/''', en ese directorio pueden existir tantos helpers como necesitemos [http://www.kumbiaphp.com KumbiaPHP], pero tambien pueden existir helpers en '''core/extensions/helpers/''' en estos casos el framework da prioridad a los helpers ubicados en el directorio de la aplicación, esto quiere decir que si existen dos archivos con el mismo nombre en los directorios helpers antes descrito [http://www.kumbiaphp.com KumbiaPHP] cargara el que se encuentra ubicado en el directorio de la aplicación (app).
Línea 512: Línea 498:
  
 
     echo $code;
 
     echo $code;
 +
}
 
}
 
}
 
</source>
 
</source>
Línea 699: Línea 686:
  
 
==Cache==
 
==Cache==
El componente cache fué mejorado y ahora posee una implementación utilizando los patrones de diseño factory y singleton, para hacer uso de la cache es necesario tener permisos de escritura en el directorio "cache" (para el caso de los manejadores "sqlite" y "file").
+
El componente cache fué mejorado y ahora posee una implementación estática, para hacer uso de la cache es necesario tener permisos de escritura en el directorio "cache". Los métodos de la clase Cache son los siguientes:
  
Puedes obtener un driver de Cache utilizando el metodo '''driver''' que te proporciona la clase Cache.
+
===Cache::get($id, $group='default')===
 
 
===Cache::driver($driver=null)===
 
Este metodo permite obtener un manejador de cache específico, si no se indica, se obtiene el manejador de cache por defecto indicado en el '''config.ini'''.
 
 
 
Ejemplos:
 
 
 
<source lang=php>
 
// cache por defecto
 
$data = Cache::driver()->get('data');
 
 
 
// manejador para memcache
 
$data_memcache = Cache::driver('memcache')->get('data');
 
 
 
// manejador para cache con APC
 
$data_apc = Cache::driver('APC')->get('data');
 
</source>
 
 
 
 
 
Todos los manejadores de cache comparten métodos comunes indicados através de la clase abstracta '''Cache''' he implementados especificamente en cada manejador, los metodos de los manejadores de cache son los siguientes:
 
 
 
===get($id, $group='default')===
 
 
Obtiene los datos cacheados. Los elementos cacheados pueden agruparse en grupos, lo cual permite evitar colisiones entre elementos cacheados con igual $id.
 
Obtiene los datos cacheados. Los elementos cacheados pueden agruparse en grupos, lo cual permite evitar colisiones entre elementos cacheados con igual $id.
  
Línea 728: Línea 694:
 
string '''$group''': grupo al cual pertenece el elemento cacheado (por defecto "default")
 
string '''$group''': grupo al cual pertenece el elemento cacheado (por defecto "default")
  
<source lang=php>
+
<pre>
$data = Cache::driver()->get('data');
+
$data = Cache::get('data');
</source>
+
</pre>
  
===save($value, $lifetime=null, $id=false, $group='default')===
+
===Cache::save($value, $lifetime=null, $id=false, $group='default')===
 
Guarda los datos a cachear.
 
Guarda los datos a cachear.
  
 
mixed '''$value''': valor a cachear (automaticamente es serializado antes de guardar)<br>
 
mixed '''$value''': valor a cachear (automaticamente es serializado antes de guardar)<br>
string '''$lifetime''': tiempo de vida de los datos (formato de [http://es2.php.net/manual/en/function.strtotime.php strtotime]), si es null, los datos no expiran nunca.<br>
+
string '''$lifetime''': tiempo de vida de los datos (formato de [http://fr.php.net/manual/es/function.strtotime.php strtotime]), si es null, los datos no expiran nunca.<br>
 
string '''$id''': identificador del elemento a almacenar, si no se especifica, se toma el id y grupo del ultimo get efectuado<br>
 
string '''$id''': identificador del elemento a almacenar, si no se especifica, se toma el id y grupo del ultimo get efectuado<br>
 
string '''$group''': grupo al cual pertenece
 
string '''$group''': grupo al cual pertenece
  
 
<source lang=php>
 
<source lang=php>
<?php if($data = Cache::driver()->get('data')): ?>
+
<?php if($data = Cache::get('data')): ?>
 
     <?php echo $data ?>
 
     <?php echo $data ?>
 
<?php else: ?>
 
<?php else: ?>
Línea 748: Línea 714:
 
     <?php  
 
     <?php  
 
         $data = ob_get_contents();
 
         $data = ob_get_contents();
         Cache::driver()->save($data, '+21 days');
+
         Cache::save($data, '+21 days');
 
         ob_end_flush();         
 
         ob_end_flush();         
 
     ?>
 
     ?>
Línea 756: Línea 722:
  
 
<source lang=php>
 
<source lang=php>
Cache::driver()->save('hola', null, 'data');
+
Cache::save('hola', null, 'data');
$data = Cache::driver()->get('data');
+
$data = Cache::get('hola');
 
</source>
 
</source>
  
 
Nota: el grupo "kumbia.*" esta reservado para el uso exclusivo de KumbiaPHP.
 
Nota: el grupo "kumbia.*" esta reservado para el uso exclusivo de KumbiaPHP.
  
===start($lifetime, $id, $group='default')===
+
===Cache::start($lifetime, $id, $group='default')===
Cachea capturando el buffer de salida, se debe utilizar en conjunto a "end()" para terminar la captura, si el elemento esta cacheado entonces lo retorna.
+
Cachea capturando el buffer de salida, se debe utilizar en conjunto a "Cache::end()" para terminar la captura, si el elemento esta cacheado entonces lo retorna.
  
 
string '''$lifetime''': tiempo de vida de los datos (formato de strtotime), si es null, los datos no expiran nunca.<br>
 
string '''$lifetime''': tiempo de vida de los datos (formato de strtotime), si es null, los datos no expiran nunca.<br>
Línea 770: Línea 736:
  
 
<source lang=php>
 
<source lang=php>
<?php if($data = Cache::driver()->start('+1 day','data')): ?>
+
<?php if($data = Cache::start('+1 day','data')): ?>
 
     <?php echo $data ?>
 
     <?php echo $data ?>
 
<?php else: ?>
 
<?php else: ?>
 
     Hola
 
     Hola
     <?php Cache::driver()->end()?>
+
     <?php Cache::end()?>
 
<?php endif; ?>     
 
<?php endif; ?>     
 
</source>
 
</source>
  
===end()===
+
===Cache::end()===
 
Guarda los datos en la cache tomados del buffer de salida.
 
Guarda los datos en la cache tomados del buffer de salida.
  
===clean($group=false)===
+
===Cache::clean($group=false)===
 
Limpia la cache. Si no se indica grupo limpia toda la cache.
 
Limpia la cache. Si no se indica grupo limpia toda la cache.
  
 
<source lang=php>
 
<source lang=php>
Cache::driver()->clean('default');
+
Cache::clean('default');
 
</source>
 
</source>
  
===remove($id, $group='default')===
+
===Cache::remove($id, $group='default')===
 
Elimina un elemento específico de la cache
 
Elimina un elemento específico de la cache
  
 
<source lang=php>
 
<source lang=php>
Cache::driver()->remove('data');
+
Cache::remove('data');
 
</source>
 
</source>
 +
 +
  
 
==Cacheo automático de views y templates==
 
==Cacheo automático de views y templates==
Línea 966: Línea 934:
 
</source>
 
</source>
  
 
+
===validates_format_of($field, $pattern, $params=array())===
 
+
Valida que el campo coincida con el patron indicado
===validates_numericality_of($field, $params=array())===
 
Valida que el campo sea numerico
 
  
 
string '''$field''': campo a validar<br>
 
string '''$field''': campo a validar<br>
 +
array '''$pattern''': expresion regular compatible con perl<br>
 
array '''$params''': array de parametros con nombre
 
array '''$params''': array de parametros con nombre
  
Línea 980: Línea 947:
 
<source lang=php>
 
<source lang=php>
 
...
 
...
$this->validates_numericality_of('cedula')
+
$this->validates_format_of('seleccion', '/^\d{3}[A-Z]/')
 +
...
 +
</source>
 +
 
 +
 
 +
===validates_numericality_of($field, $params=array())===
 +
Valida que el campo sea numerico
 +
 
 +
string '''$field''': campo a validar<br>
 +
array '''$params''': array de parametros con nombre
 +
 
 +
Parametros con nombre:<br>
 +
message: mensaje a mostrar<br>
 +
field: nombre del campo
 +
 
 +
<source lang=php>
 +
...
 +
$this->validates_numericality_of('cedula')
 
...
 
...
 
</source>
 
</source>
Línea 1005: Línea 989:
  
 
===Production===
 
===Production===
Indicando en el config.ini '''"production = On"''', se entra en el modo de producción, en este la cache de kumbiaphp framework esta activada y se cachea información necesaria para agilizar la carga de la aplicación tal como la metadata de la base datos (información de tablas y campos), asimismo las vistas que el usuario desee cachear.
+
Indicando en el config.ini '''"production = On"''', se entra en el modo de producción, en este la cache de kumbiaphp framework esta activada y se cachea información necesaria para agilizar la carga de la aplicación tal como la metadata de la base datos (información de tablas y campos), asimismo las vistas que el usuario desee cachear.  
  
 
===Development===
 
===Development===
Línea 1335: Línea 1319:
  
 
<source lang=php>
 
<source lang=php>
$value = Filter::get(' Hola  ', 'stripspace');
+
$value = Filter::get('a1.2', 'numeric');
 
</source>
 
</source>
  
Línea 1375: Línea 1359:
 
</source>
 
</source>
  
Los filtros de usuario deben ubicarse en el directorio "app/extensions/filters/".
+
Los filtros de usuario deben ubicarse en el directorio "app/filters".
  
 
Por convenio la clase que corresponde al filtro debe llevar el sufijo "Filter" y el archivo debe llamarse igual que la clase pero en notación smallcase.
 
Por convenio la clase que corresponde al filtro debe llevar el sufijo "Filter" y el archivo debe llamarse igual que la clase pero en notación smallcase.
Línea 1447: Línea 1431:
 
     //Se carga core/libs/auth/auth.php, siempre que no exista algún archivo
 
     //Se carga core/libs/auth/auth.php, siempre que no exista algún archivo
 
     //con el mismo nombre en app/libs/ ya que KumbiaPHP da prioridad a tu app sobre el core.
 
     //con el mismo nombre en app/libs/ ya que KumbiaPHP da prioridad a tu app sobre el core.
     Load::lib('auth');
+
     Load::lib('Auth');
 
   }
 
   }
 
}
 
}
Línea 1487: Línea 1471:
 
Quedando la extensions Session con los siguientes métodos para el manejo de la sessiones.
 
Quedando la extensions Session con los siguientes métodos para el manejo de la sessiones.
  
===set($index, $value, $namespace='default')===
+
===set($index, $value, $namespace='default')===
Crear o especifica el valor para un indice de la sesión actual.
+
Crear o especifica el valor para un indice de la sesión actual.
 
+
 
<source lang=php>
+
<source lang=php>
Session::set('usuario', 'Administrador');
+
Session::set('usuario', 'Administrador');
</source>
+
</source>
 
+
 
===get($index, $namespace='default')===
+
===get($index, $namespace='default')===
Obtener el valor para un indice de la sesión actual.
+
Obtener el valor para un indice de la sesión actual.
 
+
 
<source lang=php>
+
<source lang=php>
Session::get('usuario');//retorna 'Administrador'
+
Session::get('usuario');//retorna 'Administrador'
</source>
+
</source>
 
+
 
===delete($index, $namespace='default')===
+
===unset_data($index, $namespace='default')===
Elimina el valor para un indice de la sesión actual.
+
Elimina el valor para un indice de la sesión actual.
 
+
 
<source lang=php>
+
<source lang=php>
Session::delete('usuario');
+
Session::unset_data('usuario');
</source>
+
</source>
 
+
 
===has($index, $namespace='default')===
+
===isset_data($index, $namespace='default')===
Verifica que este definido el indice en la sesión actual.
+
Verifica que este definido el indice en la sesión actual.
 
+
 
<source lang=php>
+
<source lang=php>
Session::has('id_usuario');//retorna false.
+
Session::isset_data('id_usuario');//retorna false.
</source>
+
</source>
 
+
 
 
+
 
NOTA: '''$namespace''' es un espacio individual en el cual se pueden contener las variables de sesión, permitiendo evitar colisiones con nombres de variables.
+
NOTA: '''$namespace''' es un espacio individual en el cual se pueden contener las variables de sesión, permitiendo evitar colisiones con nombres de variables.
 +
 
  
 
==Upload==
 
==Upload==
Línea 1552: Línea 1537:
  
  
=== Upload::image($name, $new_name=null) ===
+
=== Upload::img($name, $new_name=null) ===
 
Sube una imagen al directorio público "img/upload".
 
Sube una imagen al directorio público "img/upload".
  
Línea 1561: Línea 1546:
 
<source lang=php>
 
<source lang=php>
 
...
 
...
Upload::image('archivo');
+
Upload::img('archivo');
 
...
 
...
 
</source>
 
</source>
  
==Partials de Paginación==
+
==Vistas de Paginación==
 
Como complemento para el paginador de ActiveRecord, através de vistas parciales se implementan los tipos de vistas de paginación más comunes, estos se ubican en el directorio "core/views/partials/paginators" y estas en capacidad de personalizarlos en tu aplicación aprovechando las características de renderizado de vistas parciales.
 
Como complemento para el paginador de ActiveRecord, através de vistas parciales se implementan los tipos de vistas de paginación más comunes, estos se ubican en el directorio "core/views/partials/paginators" y estas en capacidad de personalizarlos en tu aplicación aprovechando las características de renderizado de vistas parciales.
  

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: