Software

[Kohana - PHP] 12 consejos útiles para desarrollar con kohana PHP

Pues hoy les voy a mostrar, algunos consejos sobre el Framework kohana PHP, que les servirán mucho al momento de iniciarse en con este software, quizá algunos lo usen de otro modo y sea mejor, pero yo voy a poner como lo he usado y como me ha resultado de utilidad, así que si hay algo que no les funcione con kohana quizá deberían a darle un vistazo a este POST, aquí vienen:

1.- Kohana PHP

Es un framework escrito en PHP para acelerar el desarrollo de aplicaciones web, originalmente basado en CodeIgniter pero reescrito desde cero.

2.- Las ventajas de kohana PHP

Bueno son muchas, aquí pondré algunas

  • Extremadamente ligero
  • PHP 5 Estricto
  • OOP
  • Arquitectura HMVC
  • Curva de aprendizaje fácil, pero extensa
  • Se puede usar con Doctrine ORM, Smarty, Twig y hasta con tus propias clases sin problemas.
  • IDE – Trabaja muy bien con Netbeans.

3.- Las versiones de Kohana PHP

Kohana surgió como un fork de Codeigniter(CI) tratando de mejorarlo, y la versión 2.x es basado en CI y actualmente hay soporte para la misma y es manejada por Jeremy Bush( aka zombor).

Sin embargo la versión que uso y recomiendo en las 3.x, mas específicamente la 3.1.3.1, la cual también es estable, la recomiendo por que esta reescrita desde cero pensando en puro PHP5 Y OOP, , es mas fácil de usar, y con muchas mejoras a nivel código, de la versión 3.0 y 3.1.1, hubo cambios algo fuertes y puede que tu código no funcione bien.

En resumen usa la versión 3.1.3.1 y evitate problemas.

4.-Instalando Kohana PHP

Tengo aquí un post que menciona como instalar Kohana PHP, que no es mas que descomprimir, ver si tenemos todos los requisitos y ya.

Además de eso recomiendo que su servidor tenga soporte para .htaccess y el modulo ModRewrite instalado y en ese archivo comenta esta linea, ya que puede generarte problemas con la ubicación de tu kohana


# Installation directory
#RewriteBase /

5.-  Configura tus rutas dentro del bootstrap

Configura tus rutas dentro del archivo Bootstrap, por default viene configurada una ruta que se llama default la cual apunta al controlador welcome, elimina ese archivo y configura tus rutas o ponlo para que apunte al controlador por default de tu proyecto

Leer más

[Kohana - PHP] Lanzamiento de Kohana 3.1 “Merle” y como hacer el upgrade

Pues apenas me vengo enterando de que los desarrolladores de Kohana han liberado el día 7 de Febrero la versión 3.1 del Framework Kohana llamada “merle“.

Pues obviamente hay muchos que queremos tener nuestro Framework actualizado, entonces pues me dispuse a migrar un website de la versión 3.0.9 a la 3.0.x.

Las instrucciones de migrar son fáciles, regularmente se basa en reemplazar el directorio system de nuestra aplicación, pero esta nueva versión incorpora muchos cambios los cuales, hacen la migración un poco mas complicada.

El mismo sitio de kohana nos avisa de los siguientes cambios:


//Versión 3.0.x

$this->request->response = 'foo';

//Versión 3.1
$this->response->body('foo');

//Cambios en la clase Request de propiedades a métodos

//Versión 3.0.x  ===>    Versión 3.1
Request::$controller ==> Request::controller()
Request::$action ==> Request::action()
Request::$directory ==> Request::directory()
Request::$uri ==> Request::uri()

Todos lo puntos son marcados aquí
http://kohanaframework.org/3.1/guide/kohana/upgrading.

Ahora bien, a mi los que mas me interesaron, son importantes y no vienen aqui son los siguientes.

Request


//Versión 3.0.x

Request::instance();

El método estático anterior nos devolvía el singleton de nuestra solicitud con dicho método estático podiamos obtener parámetros y una de las cosas para lo que yo la utilizaba era para la creación de mi Breadcrumb.


//Version 3.1

Request::current();

//o

Request::initial();

Aquí como vemos tenemos dos opciones, y se elimino instance, las dos son iguales salvo por un detalle, si usamos HMVC, initial contendrá la información de la petición inicial, es decir si desde un controlador estamos invocando a un Request::factory(), ese sera inital y el factory invocado sera current cuando estemos programando dentro del factory.

Leer más

[Programación] Ingeniería del Software

Pues ya casi no tengo tiempo de escribir, tengo un par de posts en el tintero que no he podido terminar de escribir, es que últimamente ando estudiando bastante por que quiero saber mas jaja, pero bueno el propósito de este post no es quejarme si no platicarles de esto que hace poco me intereso.

Resulta que via Twitter, me entere sobre una forma de programar mediante pruebas unitarias en PHP mediante PHPUnit, tenia rato que quería saber como hacer eso y creo que si le estoy entendiendo bien, de ahi aprendí que esto se llama TDD(Test-Driven Development) y bueno esto estará en otro post, la cuestión es que me intereso bastante, al final llegue hasta el tema de la ingeniería del software.

Si bien yo no soy ingeniero (Soy Técnico Profesional), me gusta bastante este tema, resulta que para ser un buen programador es muy bueno aprender a implementar la ingeniería del software en el desarrollo del mismo, para nuestro beneficio.

Si bien no es una técnica tipo AJAX o similar, es algo muy importante a considerar ya que aplicando esto no solo te dedicas a programar-codear un script, si no desarrollas una aplicación completa mediante ciertos pasos bien definidos.

Etapas del proceso de la implementación de la Ingeniería del Software.

  • Análisis de requerimientos
  • Especificación
  • Arquitectura del Software
  • Programación
  • Prueba
  • Documentación
  • Mantenimiento

Además de lo anterior también hay varios modelos ó paradigmas para implementar dicha Ingeniería del Software, algunos de los mas usados son los siguientes.

Leer más

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

[Certificación PHP5] Analizando la sintaxis de un script Php

PHP 5 Certificación

PHP 5 Certificación

Esta es la segunda entrega de estos manuales, como verán pues ya estoy mas constante y créanme que aunque quisiera postear diario no se puede.

Y últimamente he estado un poco atareado con aprender mas php y entender por fin Python, pero bueno al tema.

Bien tenemos que un script Php, es aquel que cuando se ejecuta en un servidor (Esto es opcional) nos devuelve algo, veamos el siguiente script y posteriormente veremos cada una de sus partes, si estas aprendiendo apenas Php, no te preocupes de no entender nada, es solo un código de muestra el cual solo nos va a servir para ver cada una de las partes que integran un script básico.


$castVariable = 1;

// Comentario de una sola linea

# Otro tipo de comentario de una sola linea

/*
 Comentario
  multilinea

 */

/**
 * Comentario de documentacion PHPDoc
 *
 * En el cual podemos hacer mas cosas con @ param
 *
 * @method getUSers
 */

{

 f();
}

echo "Hola mundo";

Bien un poco grande el código pero creo que nos servirá de ejemplo, así que vayamos línea a línea identificando cada uno de los componentes de php

Linea 1: Declaración de una variable, esto es opcional ya que en Php, podemos usar cualquier variable cuando queramos, aunque el declarar un variable nos permite tener un código mejor organizado

Linea 3: Básicamente es un comentario, el cual no se lo leerá Php y solo sirve para que lo veamos nosotros como desarrolladores Ojo el comentario termina con el salto de línea

Linea 5: Lo mismo que el punto anterior salvo que en vez de Doble diagonal se usa el símbolo de numero o gato #

Lineas 7 a 11: Este es un comentario que como su nombre lo indica es multilínea inicia con /* y termina con */ y no con salto de línea como los anteriores

Linea 13 a 19: Este comentario es para generar documentación PHPDoc desde un comentario, la cual requiere cierta sintaxis, PhpDoc lo veremos mas adelante.

Linea 21 a 24: inicio de un bloque Php el cual inicia con llave { y termina en llave }se usa para agrupar codigo php el cual puede derivar de una condición o  de una función.

Y la ultima Línea es donde se usa el constructor “echo”,este constructor permite mostrar un texto en pantalla, posteriormente veremos mas constructores.

Si ven esto no es gran cosa para aprender, pero es conveniente ir identificando cada uno de los elementos del lenguaje para que no se nos pase nada durante el examen de certificación.

Saludos

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