Hagamos un ejemplo muy bien explicado sobre cómo usar el Framework Kohana PHP con MVC usando ORM entre otras cosas, para que vean para que sirve y todo lo que pueden hacer con el
Ya sabemos cómo instalarlo ahora procedamos a trabajar.
Como ejemplo haremos una aplicación que liste productos, maneje altas y bajas de una tienda con un Front-End y un Back-End.
Para empezar necesitamos lo siguiente
*Requisitos
- Apache (ModRewrite instalado)
- PHP 5.2
- MySQL
- Kohana 3 Framework
*Opcionales
- SQlFront
- Phpmyadmin
- Editor de código como Webuilder (Luego veremos cómo hacer casi lo mismo con Netbeans un IDE completo)
Haremos una nueva instalación de Kohana, en nuestra PC que será nuestro servidor (localhost) copiamos el contenido del framework a una carpeta que se llame tienda (en mi caso E:/www/tienda/)
Y acceso a mi website escribiendo http://localhost/tienda/ y ahí veremos nuestro install ahora navegamos hasta E:/www/tienda/ y ahí estará ese archivo, lo borramos (si todo salió ok, si no corregir y verificar hasta que todo este en verde)
Esta vez vamos empezar por los datos para que al final hagamos el website.
Necesitamos una tabla de productos usaremos el siguiente SQL con los datos básicos de cada producto.
Como regla general hay que tener en cuenta que la base de datos debe de tener las siguientes características:
- Nombre de la tabla en Plural (“productos”)
- Nombre de los campos en Singular (“descripción”)
- La clave principal se llamara id, en minúsculas (Se puede poner otra cosa pero habría que editar nuestra clase que manejara esa tabla por ello lo dejaremos como id)
CREATE TABLE `productos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) DEFAULT NULL, `descripcion` text, `activo` int(1) DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Agregamos el siguiente contenido
INSERT INTO `productos` VALUES (1,'Agua Debian','Agua Embotellada 1 Lts Marca Debian',1); INSERT INTO `productos` VALUES (2,'Refresco Php','Refresco 2 Lts Marca Php Sabor Uva',1); INSERT INTO `productos` VALUES (3,'Paleta Ubuntu','Paleta Ubuntu sabor Cafe 1pza',1);
Ahora editaremos nuestro bootstrap (E:/www/tienda/application/bootstrap.php)
Buscaremos el configuración del init y escribiremos los siguiente
<?php
//...
//...
Kohana::init(array(
'base_url' => 'http://localhost/tienda/',//Aqui le decimos cual será la url del proyecto
'index_file' => FALSE, // //Le indicamos que usara urls amigables (sin .php)
));
...
...
//Buscaremos el Route en el mismo script y lo editaremos
..
...
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'tienda', //Nombre del controlador por default
'action' => 'index', //Acción por default (lo dejamos en index)
));
Lo guardamos (:wq XD ) y vamos a ver que en la raíz del proyecto hay una archivo llamado example.htaccess lo renombramos a .htaccess que será el que manejara las urls amigables para no tener el tienda/index.php/controlador ser tienda/controlador.
Les recomiendo comentar la siguiente línea para no tener problemas en las direcciones
# Installation directory #RewriteBase /kohana/ pueden poner /tienda y va a funcionar pero es mejor quitarla # ya que con ello evitaremos problemas cuando estemos cambiando de un servidor local # a un servidor de producción
Lo guardamos (:wq XD ) Y ahora vayamos a crear nuestro controlador.
Entramos a E:/www/tienda/application/classes/controller y creamos tienda.php
Y creamos nuestro controlador
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Tienda extends Controller {
/**
* Controller_Tienda Es el controlador por default recuerden el bootstrap
* todos los controladores llevan esta sintaxis, Controller_<Nombre_del_controlador>
*
* action_index() Es la acción por default (ejemplo http://localhost/tienda/accion)
* si no se especifica en la url (ejemplo http://localhost/tienda/accion, se usara
* index por default y la sintaxis es action_<nombre_de_la_accion>
*/
public function action_index()
{
echo "Programando ....";
}
} // End Tienda
Lo guardamos (:wq XD ) y naveguemos a http://localhost/tienda/ veremos que dirá “Programando ….”, si no vemos eso es que algo hicimos mal y hay que volver a ver en donde nos fallo
Ahora bien, procederemos a conectar la base de datos, para ello vamos a editar el archivo de configuración de la base de datos E:/www/tienda/modules/database/config/database.php
Y agregaremos la conexión mysql, pueden usar PDO(pero prefiero hacerlo como ejemplo de forma tradicional)
<?php defined('SYSPATH') or die('No direct access allowed.');
return array
(
'default' => array
(
'type' => 'mysql',
'connection' => array(
/**
* The following options are available for MySQL:
*
* string hostname
* string username
* string password
* boolean persistent
* string database
*
* Ports and sockets may be appended to the hostname.
*/
'hostname' => 'localhost', ////Usa los datos de tu conexión MYSQL
'username' => "root", ////Usa los datos de tu conexión MYSQL
'password' => "localhost", ////Usa los datos de tu conexión MYSQL
'persistent' => FALSE, ////Opcional
'database' => 'kh_tienda', ////Usa los datos de tu conexión MYSQL
),
'table_prefix' => '',
'charset' => 'utf8',
'caching' => FALSE,
'profiling' => TRUE,
),
//Aquí continúa con el PDO, ese de momento no hay que tocarlo
//..
//....
//......
)
Ahora que ya lo tenemos vamos a decirle a kohana que agregue los módulos de base de datos y orm, necesarios para que funcione nuestro ejemplo, para ello hay que editar otra vez nuestro archivo bootstrap ya descomentar los módulos de manera que quede así.


comentarios recientes