[Php: Kohana 3]El framework Kohana 3 y el MVC

Bien después del error que se presento en el penultimo post, y ya resuelto seguimos posteando “ahora si que voy tendido”.

Yo supongo que ya leyeron el post anterior sobre instalación de Kohana 3, si no este es el link [Framework Kohana 3] Instalando y configurando Kohana 3 #Ko3

Bien teniendo eso, hoy haremos un pequeño ejemplo de MVC, recordemos que el paradigma MVC (Modelo, Vista, Controlador) nos permite desarrollar mejor, mas rápido, organizar nuestro proyecto y hacerlo abstracto.

Lo anterior es porque nos permite programar de la siguiente manera:

  • Modelo: Capa de datos, la cual se encarga de la petición de datos
  • Vista: capa de presentación, es la que se encarga de mostrar el resultado al cliente
  • Controlador: capa de negociación, esta se encarga de organizar al información, en otras palabras identifica que es lo que necesitas, pide los datos al modelo y los presenta en la vista.

Bien ahora veamos cómo trabaja Kohana 3 con esto

Como podemos ver Kohana consta de 3 carpetas:

  • Application: es donde estará nuestra aplicación donde tendremos nuestras carpetas de MVC, digamos que es lo publico
  • Modules: es donde residen los módulos que le podemos agregar a Kohana por ejemplo la conexion a la base de datos, el ORM(luego hablaremos de este),autenticación etc.
  • System: pues como su nombre lo indica es donde está el core del Kohana 3 o el núcleo, este pues casi no hay que tocarlo en la mayoría de proyectos de hecho casi nunca se toca o no debería tocarse.

Ahora lo que nos interesa en este caso es la carpeta Application, al abrimos y veremos las siguiente carpetas:

  • Cache: es donde se guardara el cache interno, este se activa muy fácil pero no esta tan eficiente como un verdadero cache.
  • Clases: es donde estarán nuestros controladores (C de MVC) y nuestros modelos aquí veremos que hay una carpeta llamada controller, ahí hay que crear una carpeta que se llame model que servirá para nuestros modelos, y también podemos crear una carpeta helper que nos servirá para poner ahí nuestros helpers cuando los creemos.
  • Config: esta carpeta no le he tocado, pero por lo que he visto son como configuraciones especiales del website, yo recomiendo no poner nada ahí, hasta ver bien su uso.
  • Logs: como su nombre lo indica aquí se guardan logs de los errores de nuestro código.
  • views:  si bien esta carpeta regularmente no existe, pero hay que crearla por que es donde estarán nuestras vistas(la capa de presentación) de nuestro proyecto.

También veremos que dentro de la carpeta principal Application hay un archivo bootstrap.php el cual es digamos que como un config y un router a la vez, ya que es donde configuraremos algunas cosas y enrutaremos mediante expresiones regulares(se parece al settings.py de Django) a los controladores que deseemos.

A continuación describiré cada una de las partes que conforman el bootstrap.php

  • date_default_timezone_set(‘America/Chicago’); define la zona donde se está ejecutando nuestros script yo le pongo America/Mexico_city
  • setlocale(LC_ALL, ‘en_US.utf-8′); Configuración de la codificación, recomiendo usar UTF-8
  • spl_autoload_register(array(‘Kohana’, ‘auto_load’)); Esto es un poco complicado de explicar en un par de líneas(luego me extenderé), pero diremos que con esto se esta cargando Kohana.
  • ini_set(‘unserialize_callback_func’, ‘spl_autoload_call’); Lo mismo que el de arriba, es para que inicialice el autoloader para serializar.
  • Kohana::init(array(‘base_url’ => ‘/kohana/’)); es donde configuraremos el mod_rewrite (en php, también hay que agregar el htacces), la url de base, el cache interno entre otras.
  • Kohana::$log->attach(new Kohana_Log_File(APPPATH.’logs’)); pues indica donde guardara los logs
  • Kohana::$config->attach(new Kohana_Config_File); Configuración de Kohana
  • Kohana::modules(array( … )) Aquí es donde cargaremos los módulos como el ORM y la base de datos, también podemos agregar algunos otros.
  • Route::set(‘default’, ‘((<controller>/(/<action>)))’) ->defaults(array( ’controller’ =>  ’welcome’,’action’ => ‘index’,)); Este por el momento diremos que nos indica a que controlador ira por default en este caso se llama welcome, y método index, luego veremos cómo configurarlo bien.
  • echo Request::instance()->execute() ->send_headers() ->response; Esto hasta ahorita no lo he tocado pero es para que se ejecute el sistema.

Bien creo que por hoy es suficiente, si queremos empezar a probar les recomiendo que pongan controladores copiando el código del controlador welcome.

Perdonen que este todo amontonado pero no hay mucho tiempo para formatear bien el texto, esto es solo para que se den una idea, lo mejor el abrir el bootstrap.php y ver el contenido.

El capitulo que sigue veremos un ejemplo de un MVC con ORM (haber si me alcanza el tiempo si no por separado).

Saludos y buen codding…

Related Photos

No related photos.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *