jueves, 11 de marzo de 2010

Manual de Kohana en español

Kohana, es un framework de php, derivado del otro framework llamado: “CodeIgniter”. El que escribe este pequeño manual, ha utilizado los varios framworks de php entre ellos "codeIgniter".
Todos son excelentes, es lo que les puedo decir, unos mas complejos que otros. Hay que leer y leer y leer, así se entenderá el funcionamiento de los frameworks y muchas veces esto es cansino y terminas por dejarlo aún lado.

De todos los frameworks que me encontrado, CodeIgniter y Kohana son los mas rápidos de aprender. Así que, vuelvo y repito no hago ningún: “top ten”, “los mejores”, “este es mejor que este otro”. Eso se los dejo a criterio de cada quien.

Instalación.

1.- Descarga la última version de Kohana, y su contenido los descomprimiremos en el path del “webroot” que este configurado en tú servidor, ejemplo:
para este caso se usa Ubuntu con apache, donde el webroot esta en el siguiente path:
/var/www/kohana -> donde kohana, tendrá el contenido del archivo descargado.

2.- Ejecuta algo como esto:
http://localhost/kohana
Si todo salio bien, debería enviarte la pagina seteada por defecto que tiene Kohana, y te aparecerá algo como: “bienvenido a kohana” y con un fondo de color verde.

3.- Si quiere ejecutar los ejemplos, para redireccionar a los ejemplos, debes escribir algo como esto:
http://localhost/kohana/index.php/examples
Bueno esto es un poco fastidioso, el poner al "index.php" como intermediario, pero la solución es sencilla, lo quitaremos mas adelante.

Si todo salió bien, veras algunos ejemplos del kohana.

4.- Quitemos el famoso "index.php". Para esto, vamos a la raíz del kohana, donde nosotros descomprimimos el contenido de kohana en nuestro webroot.
Usemos cualquier editor de textos y creamos un archivo llamado:
.htacces

Este archivo .htacces, permite hacer una infinidad de configuraciones en apache, así que; si es que quieren saber más, bueno a leer el EXTENSO manual de apache sobre .htaccess.
Para no perder el hilo, dentro de este archivo escribamos el siguiente contenido:

# Turn on URL rewriting
RewriteEngine On
# Put your installation directory here:
# If your URL is www.example.com/, use /
# If your URL is www.example.com/kohana/, use /kohana/
RewriteBase /kohana/
# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# For reuests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]

Listo, procedemos a guardar los cambios.

Pero, OJO, esto no va a funcionar, mientras no se active el mod_rewrite en Apache. Para esto, yo use la herramienta WEB llamada: “webmin”.
Esta herramienta permite administrar los diferentes servicios que tengas instalados en LINUX, en los que aparecerá el servidor http "APACHE". Todo la administracion es en un ambiente web y gráficamente. Si es que no se quiere utilizar esta herramienta, pues la linea de comandos o ir de carpeta en carpeta es la otra solución para configurar el mod_rewrite en APACHE.
Bueno, como dice un dicho: “Dañando se aprende”, pues los que quieran hacerlo manualmente y dando permisos de lectura y escritura aquí y allá, adelante.
No voy a entrar en detalle con estas configuraciones, porque sino... esto no acaba nunca.

5.- Una vez puesto el .htaccess y el mod_rewrite en apache, escribamos la siguiente dirección.
http://localhost/kohana/examples

Y listo, ya no necesitamos el “bendito” index.php y te deberá aparecer los ejemplos de kohana.
Fantástico, un poco demoroso, pero el trabajo da frutos.
Eso es todo amigos, y ya tienen para empezar a trabajar en kohana.

Puesta en marchar los: Controladores y vistas.
Breve introducción.

Para empezar, consulten el termino “MVC”, no me detendré a explicar esto, porque en el google existe demasiada información al respecto, unos mejor explicados que otros; así que, a leer el que ustedes prefieran. Esto es importante, porque es la base “fundamental” para entender al kohana.
Otra cosa que tengo que indicar es: la programación orientada a objetos. De igual forma, a googlear y buscar los “n” manuales que hay en linea. Si no entendemos esto, pues kohana va a parecer lo mas “extraño” del mundo.
Entonces dada esta introducción sencilla, iniciemos.

Controladores

Dentro de la carpeta “application” tenemos la carpeta denominada: “controllers”. Bueno ahí esta el: “examples.php” y el “welcome.php”, ¿recuerdan?.
Deben recordar cuando se les dijo que escriban: http://localhost/kohana/examples
Eso es el controlador, por eso es preciso de que se entienda el concepto: “modelo-vista-controlador”. El “examples” es el controlador.
Pero y nuevamente reitero, no me detendré aquí, porque quiero poner mi propio controlador para que aparezca al inicio de http://localhost/kohana y no me aparezca el controlador “welcome”.
1.- Dentro de la carpeta application/controller, creamos una clase controladora de la siguiente forma:
<?php
class Principal_Controller extends Template_Controller
{
// Set the name of the template to use
public $template = 'principal/template';
public function __construct()
{
parent::__construct();
// Cargamos la vista principal...
$this->template->content = new View('vista_principal');
}

public function index()
{
}
}
?>

Listo, hemos creado nuestra clase “Principal_Controller” y vamos a explicar un poco el código.
a.- La clase controladora empezara así: Uncontrolador_Controller, Otrocontrolador_Controller, etc, etc... y así las clases controladoras que se necesite.
b.- Extenderá o heredara de la clase “Template_Controller”.
c.- Declaramos una variable publica “template” y le asignamos el valor del path del template a usar, para nuestro ejemplo: “principal/template”
d.- Creamos el constructor de la clase, y en este llamamos al constructor de la clase extendida: parent::__construct();
e.- A la variable template se le asigna o instancia un objeto de tipo “view” o vista, y de
parámetro inicial le enviamos el nombre de la vista: “View('vista_principal');”.
f.- Instanciamos el objeto en el constructor, y así estará presente para cada uno de los métodos que pretendamos crear.
g.- Creamos un método publico llamado index. Siempre buscara el nombre index y si no lo encuentra, el controlador simulara un index.
Bueno este es lo que haremos en nuestro controlador.

Vistas
2.- Dentro de la carpeta application/views, creamos un archivo llamado -para mi caso- “vista_principal.php”. Aquí cabe señalara que, ustedes pueden poner el nombre que mas les parezca, con tal que en la declaración del view pongan el nombre de su vista, ejemplo: “new View('nombre_de_mi_vista')”.
Dentro de esta vista, hemos colocado el siguiente código:

<?php defined('SYSPATH') OR die('No direct access allowed.'); >
<div>
<?= form::open('principal/validar'); ?>
<table>
<tr>
<td>Usuario:</td>
<td><?= form::input('txtusuario'); ?&gt</td>
</tr>
<tr>
<td&gtClave:</td>
<td><?= form::password('txtclave'); ?></td>
</tr>
<tr>
<td><?= form::submit('btnIngresar', 'Ingresar'); ?></td>
</tr>
</table>
<?= form::close();?>
</div>


Expliquemos un poco el código y mas que código las etiquetas html y los help form que tiene kohana:
a.- Las etiquetas html como: div, body, etc., están por demás por explicar y la gran mayoría los conoce y sabe como usarlos.
b.- Los helpers form de kohana son llamados en esta vista de la siguiente forma:
form::imput
form::password
c.- Los métodos estáticos, form::open y form::close, son lo que se utiliza en el típico html que se forma de la siguiente manera:
"<form name='miformulario' action='urldedestino'></form>"
d.- Dentro del form::open, se declara o se pasa el parámetro al controlador que llamaremos y el método que sera invocado, para nuestro ejemplo: “principal/validar”, donde validar es el método a llamar.
Estos métodos son “estáticos” y no necesitamos crear un objeto de tipo form.
La definición de método estático es:
“Un método estático pertenece a la clase pero no puede acceder a los atributos de una instancia. La característica fundamental es que un método estático se puede llamar sin tener que crear un objeto de dicha clase.
Un método estático es lo más parecido a una función de un lenguaje estructurado. Solo que se lo encapsula dentro de una clase.”
ref: http://www.phpya.com.ar/poo/temarios/descripcion.php?cod=56&punto=22&inicio=12

Listo, un breve concepto de método estático, y de esta forma es como pueden llamar a todos los helpers form que tiene kohana, tales como: textarea, select, submit, etc.
Bueno, hasta aquí llegamos con la vista que sera llamada al inicio cuando pongamos: http://localhost/kohana
Ojo, con los pasos que hemos realizado hasta aquí, aun no funcionara.

3.- Como kohana maneja el concepto de “template”, bueno esto hace que tengamos que ir a la carpeta system/views, dentro de esta carpeta encontraremos dos carpeta creadas por kohana. Una que dice kohana y otra que se llama pagination.
Una breve indicación.-
Ahora, si ustedes abren el template que esta dentro de la carpeta kohana, este es el template que aparece al principio, al haber recién instalado el kohana. Si ustedes miran el código, encontraran una variable llamada: "$content"

Asociemos esta variable con el controlador. Si ustedes se fijan en el controlador, existe una asignación de valor de esta forma: “$this->template->content”. Entonces ese “content” del controlador, tiene relación con el “content” del template.

Ahora, dentro de la carpeta system/views, crearemos una carpeta llamada “template” y dentro de esta, un archivo llamado “template.php”. No pongamos nada de código aun.

Si uds ejecutan http://localhost/kohana tendran un error. Esto es porque no encuentra la variable llamada “content”. A continuación pongamos la siguiente linea de código dentro del archivo template.php que hemos creado.
// esta variable presentara el formulario que hemos creado en el punto numero dos
echo $content:

Si uds ejecutan: http://localhost/kohana, les presentara un error o les sigue apareciendo la bienvenida de kohana. ¿Por qué?, bueno, es porque nos falto un ultimo paso.
4.- Nos ubicamos en la carpeta system/config, y buscamos el archivo: “routes.php”. Abrimos el archivo y boaaala... encontrara una linea de la siguiente forma:
$config['_default'] = 'welcome';
cambiamos por:
$config['_default'] = 'principal';

LISTO, ejecutamos: http://localhost/kohana y nos deberá presentar el controlador que hemos configurado como inicial y en este nos mostrara nuestro primer formulario.
Para no hacer extenso este pequeño y humilde manual, en otra entrega empezaremos a utilizar los modelos y los métodos con los que trabajaremos con al base de datos.
Como dice el “eslogan” de UBUNTU... TODOS JUNTOS.

Si quieren hacer: observaciones, cambios a este manual, les estaré agradecido en su critica constructiva.

Gracias... a todos
Spieluhr

5 comentarios:

  1. Excelente aporte, soy novato con Kohana, y me ha dado nuevas ideas. Gracias

    ResponderEliminar
  2. hola..
    yo no encuentro libros... o guias sobre kohana..
    pero cuando pongo joomla! .. si hay u.u
    alguien conoce unlugar onde aya un lidro en pdf.. xd gracias.. y buen aporte .. xd.. ia empiezo a entender..

    ResponderEliminar
    Respuestas
    1. Tengo un libro de kohana for beginners, solo que está en inglés. Si deseas contáctame via facebook, /helpse

      Suerte.

      Eliminar
  3. Bueno yo solo e trabajado con CODEIGNITER ahora estoy empezando con KOHANA saben donde puedo encontrar un manual en pdf para aprenderlo

    ResponderEliminar