En esta sección, se explican los pasos a seguir, para poner a funcionar el framework en nuestro ambiente de desarrollo.
Como se mencionó arriba KumbiaPHP es muy fácil y en este sentido los requerimientos para hacer funcionar el framework son mínimos, a continuación se listan:
- Interprete PHP versión 5.4 o superior.
- Servidor Web con soporte de reescritura de URL (Apache, Nginx, Cherokee, Lighttpd, Internet Information Server (IIS)).
- Manejador de base de datos soportado por KumbiaPHP.
Para instalar KumbiaPHP Framework, se debe descargar su archivo comprimido desde la sección de descarga http://www.kumbiaphp.com/blog/manuales-y-descargas/ para obtener la versión mas reciente del framework. Una vez descargado el archivo, es esencial asegurarse que tiene la extensión .tgz para usuarios Linux y .zip para usuarios de Windows, ya que de otro modo no se descomprimirá correctamente.
A continuación se descomprime su contenido en el directorio raíz del servidor web (DocumentRoot). Para asegurar cierta uniformidad en el documento, en este capitulo se supone que se ha descomprimido el paquete del framework en el directorio kumbiaphp/ . Teniendo una estructura como la siguiente:
-- KumbiaPHP-master
|-- core
|-- vendors
|-- default
|-- app
|-- public
|-- .htaccess
`-- index.php
KumbiaPHP Framework utiliza un módulo para la reescritura de URLs haciéndolas mas comprensibles y fáciles de recordar en nuestras aplicaciones. Por esto, el módulo debe ser configurado e instalado, en este sentido debe chequear que el módulo esté habilitado, en las siguientes secciones se explica como hacerlo.
Nos aseguramos de activar el mod_rewrite de esta manera y como usuario administrador desde la consola.
> a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
Lo anterior indica que se ha habilitado el mod_rewrite de Apache, pero aun falta indicarle a Apache que interprete los archivos .htaccess que son los encargados de hacer uso del rewrite y a su vez tienen las reglas de reescritura de las URLs.
Como usuario administrador editamos el siguiente archivo.
> vi /etc/apache2/sites-enabled/000-default
<Directory "/to/document/root">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Para que los .htaccess tengan efectos, se ha de sustituir AllowOverride None por AllowOverride All, de esta manera Apache puede interpretar estos archivos.
Hecho esto, queda reiniciar el servicio de apache.
>/etc/init.d/apache2 restart
A continuación, se prueba todas las configuraciones realizadas mediante la siguiente URL.
Si todo ha ido bien, debería ver una página de bienvenida, con lo que la instalación rápida se puede dar por concluida.
Figura 2.1: Instalación exitosa de KumbiaPHP
Esto es un entorno de pruebas el cual esta pensado para practicar con KumbiaPHP en un servidor local, no para desarrollar aplicaciones complejas que terminan siendo publicadas en la web.
Usando $_SERVER['PATH_INFO']
:
server {
listen 80;
server_name localhost.dev;
root /var/www/kumbiaphp;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php {
#fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index /index.php;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\. {
deny all;
}
}
Usando $_GET['_url']
:
server {
listen 80;
server_name localhost.dev;
root /var/www/kumbiaphp;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?_url=$uri&$args;
}
location ~ \.php {
#fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index /index.php;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\. {
deny all;
}
}
ReWrite es un módulo de apache que permite reescribir las urls que han utilizado nuestros usuarios. KumbiaPHP Framework encapsula esta complejidad permitiendo usar URLs bonitas o limpias como las que vemos en blogs o en muchos sitios donde no aparecen los ?, los & ni las extensiones del servidor (.php, .asp, .aspx, etc).
Además de esto, con mod-rewrite KumbiaPHP puede proteger nuestras aplicaciones ante la posibilidad de que los usuarios puedan ver los directorios del proyecto y puedan acceder a archivos de clases, modelos, lógica, etc., sin que sean autorizados.
Con mod-rewrite el único directorio que pueden ver los usuarios es el contenido del directorio público (public) del servidor web, el resto permanece oculto y solo puede ser visualizado cuando ha realizado una petición en forma correcta y también es correcto según nuestra lógica de aplicación. Cuando escribes direcciones utilizando este tipo de URLs, estas ayudando también a los motores de búsqueda a indexar mejor tu información.
KumbiaPHP ofrece dos modos de ejecución de una aplicación el cual es indicado en el archivo default/public/index.php, se describen a continuación:
Es el modo por defecto, en este caso el valor de la constante PRODUCTION
es false: const PRODUCTION = false;
. En éste la cache de KumbiaPHP está
desactivada y cualquier cambio que se haga en los campos y tablas de la base
de datos (adición o eliminación de campos, etc), vistas de la aplicación
que se cacheen, surtirán efecto inmediatamente.
Se activa asignando en el archivo default/public/index.php
el valor true a la constante PRODUCTION, así: const PRODUCTION = true;
, en este la cache de
KumbiaPHP 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.
Cuando se efectua el cambio de PRODUCTION = false;
a PRODUCTION = true;
,
es necesario eliminar el contenido del directorio de cache de la aplicación default/app/temp/cache/* para que se renueve la metadata y no haya problemas al guardar o mostrar la información.
no se deben confundir con la conexión a la base de datos que se va usar ,