Programacion

[Manual-PHP] Creando un proyecto MVC con Framework Kohana PHP parte I

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í.

Leer más

[Evento] Konference (Kohana Conference) en Londres el 15 de Mayo 2010

Ahora si a lo windows Woow.

Hasta hoy apenas me vengo enterando de esto, les platico rápidamente.

El 15 de Mayo de este año (2010), se llevara a cabo en Londres, una conferencia de desarrolladores del Framework Kohana:
KOnference – The London Kohana Conference 2010.

La verdad estoy con unas tremendas ganas de ir sin embargo dudo mucho que pueda, por que no creo que en la chamba me paguen la ida y pues ahorita no hay mucho presupuesto.

Kohana Konference

Me puse ha investigar y aquí les dejo la agenda, la cual se ve va a estar bien interesante.

  • Inicio || Duración || Sesión
  • 10:30 || 25″ || Registration
  • 10:55 || 5″ || Welcome
  • 11:00 || 55″ || Building Swiftly with Kohana 3 – KO3
  • 11:55 || 40″ || Designing for Scalability with HMVC – KO3
  • 12:35 || 15″ || Break
  • 12:50 || 35″ || Migrating existing codebases to Kohana – KO2
  • 13:25 || 30″ || Advanced ORM – theory and practice – KO3
  • 13:55 || 30″ || Lunch
  • 14:25 || 30″ || Discovery Session
  • 14:55 || 20″ || Rapid site prototyping – KO2
  • 15:15 || 30″ || Templating with Twig – KO3
  • 15:45 || 30″ || Break
  • 16:15 || 25″ || An introduction to using Gearman with Kohana – KO2
  • 16:40 || 20″ || Deploying Kohana on a large scale application – KO2
  • 17:00 || 10″ || Mukuru.com – Kohana meets E-Commerce
  • 17:10 || N/A- || Beers & dinner

Como ven habra platicas tanto de Ko3 como de Ko2, el unico pero que veo es que sera hasta Londres y pues es algo complicado ir.

Ojala y leyeran este post y pronto hagan una aunque sea en EUA.

Al parecer el costo sera de 15 GBP (Libras) (unos $300 MXN), el pago se realiza mediante Paypal y el registro sera a las 10:30 (Hora Local), recomiendan llegar a tiempo ya que como ellos dicen hay mucho que ver y el tiempo esta contado.

Pues ojala y eventos como este le den mas presencia a este increible framework y lo ayuden a crecer, por que se lo merece.

Mas info en los siguientes Links:
KOnference – The London Kohana Conference 2010

KOnference – The London Kohana Conference 2010 Calendar

Leer más

[Php] ¿Que es un ORM?

Pues como has visto en los últimos artículos de este blog he hablado mucho del famosísimo ORM que si bien aun me falta mucho, para poder usar todas sus características, lo poco que he aprendido a usarlo me ha resultado maravilloso.

El mapeo objeto-relacional u ORM (Object-Relational Mapping), una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y el utilizado en una base de datos relacional. En la práctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Wikipedia

Ose nos permite “pasar” una base de datos a programación orientada objetos, es decir tu solo te encargas de configurar tu conexión y mediante métodos puedes hacer los querys que quieras, y todo son objetos.

Existen muchos ORMS, para diferentes lenguajes de programación, pero obviamente nos enfocaremos a Php, y según se (no estoy 100% seguro) pero los ORMS están basados en Hibérnate de Java se supone que fue como el primer ORM.

En Php tenemos los siguientes ORMS:

Yo no he visto como trabajan cada una y se dé muy buenas fuentes que las mejores estan entre Doctrine y Propel.

Claro que depende de que desees hacer, de hecho aun no he probado bender-modeler pero por lo que veo es muy completa :-) (Y no es comercial he) ya que como dije va mas allá ya que te genera los modelos que usaras en tu bd automáticamente (incluidos getters y setter).

Voy a mostrar a que me refiero con todo esto del ORM desde la vista de Kohana ORM ya que es donde he trabajado y es muy fácil.

Antes que nada quiero aclarar que son solo ejemplos, prometo que después de esto seguirá nuestra primer MVC con base datos, ORMS y todo, esto solo es para que se den una idea de que hablo cuando digo que esta buenos los ORM´s.

Para empezar solo necesitamos crear nuestra tabla (p.ejem. ‘usuarios’), y crear un modelo con la siguiente sintaxis.

usuarios.php


<?php

class Model_Usuarios extends ORM {

}

?>

Leer más

[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:

Leer más

[Java] Jonathan Bruce habla sobre el Futuro de Java en cuanto a Persistencia JDBC, JPA, NoSQL

Esto lo pongo por que me parecio muy interesante, ya que aunque si bien esta en ingles, Jonathan Bruce, nos halba a cerca de como se ve el futuro de Java por parte de Oracle refirindose a la persistencia sobre todo en lo que se refiere a NoSQL.

Les invito a que lo vean yo no lo he podido ver completo solo una parte, lo veo en cuanto llege a casa.

A por cierto Jonathan Bruce es Senior Product Manager de Progress DataDirect. Su compañía es conocida por sus drivers para Java y .NET. En esta entrevista, Jonathan da sus pensamientos sobre cómo JDBC y el mapeo objeto-relacional se desarrollará en los próximos años.

Lo encontré aquí : JDBC, JPA, NoSQL – The Future of Java Persistence

Leer más

[Eventos] El Google Developer Fest 2010

Si pues así fue, hoy tuve la gran oportunidad de ir al Google Developer Fest 2010.

Les voy a contar un poco de que se trato y como me pareció este fabuloso evento.

Google Developer Fest

Google Developer Fest

Me fui temprano, y llegue a eso de las 8 y media el registro empezó como a las 9 con playera incluida aunque un poco grande para mi tamaño :-) y el evento inicio a eso de las 9:30, algo raro de parte de Google, aunque pues al parecer hubo mucho trafico.

Pero bueno, después de una breve introducción por parte de Jhon Farrel, toco el turno a Don Dodge el cual nos hablo de los cambios que ha tenido el desarrollo en la Web (La nube / Cloud Computing) así como el avance tecnológico de los móviles pasando de un teléfono celular que era solamente eso y nada mas hasta ser un completo smartphone o micro-pc “diria yo”.

Posteriormente tuvimos un descanso muy breve y de ahí, vino una especie de resumen de lo que veríamos durante todo el evento, presentado por cada uno de los expositores, esto considero que fue muy importante por que nos permitió ver a cuales conferencias iríamos ya que como iba a haber conferencias simultaneas no podríamos estar en todas. Afortunadamente mis gustos coincidieron con los de mi empresa, ya que me sugirieron que fuera a las conferencias de Geolocalización y Andriod cosa que me gusto y me llamo mucho la atención.

Después vino la comida, la cual por cierto estuvo muy rica y fue bastante.

Geo Web Track

Temas: Las APIs Geo de Google, cuándo utilizarlas y Mapeo avanzado: Rendimiento y escalabilidad

Leer más

[Framework Kohana 3] Instalando y configurando Kohana 3 #Ko3

Para empezar con con Kohana, necesitamos tener instalado un entorno de pruebas el cual debe tener lo siguiente.

  • Apache o un servidor Web como Lighttpd
  • Php 5 o superior (de preferencia 5.3)
  • MySQL 5

Funcionando y correctamente configurado
Imaginemos que tenemos nuestro Htdocs en E:\www y que ese es nuestro htdocs.

Ahora procedamos

  • Bajaremos nuestro kohana 3
  • Para ello iremos a la siguiente pagina http://v3.kohanaphp.com/download
    Y descargaremos la versión v3.0.0 “renaissance” que es la estable de la rama 3.x
  • Lo descomprimimos y veremos dentro una carpeta que se llama kohana, y dentro de ella el framework
  • Copiamos esta carpeta kohana a nuestro Htdocs
  • Quedaría así E:\www\kohana

Ahora vayamos a nuestro dirección http://localhost/kohana y veremos lo siguiente.

kohana 3

kohana 3

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter