Kohana evoluciona a FuelPHP

fuelphp

Kohana a diferencia de otros frameworks de PHP me apasionó mucho porque era mucho más simple de entender que Symfony (en esa época v 1.4 aprox) tenía todas las herramientas para realizar sitios muy complejos y a la vez era rápido como el rayo, lo he utilizado mucho tiempo hasta que la salida de otro framework me llamó la atención y continué desarrollando en él debido a que me brindaba más herramientas y algo que kohana no tenía que era el CRUD. Muchas veces cuando generamos sitios web necesitamos crear un CRUD con la base de datos rápido, no porque seamos programadores perezosos sino porque requerimos acelerar el desarrollo, tener algo como base para trabajar y luego modificarlo a nuestras necesidades. Debido a eso y a que Yii contenía un sistema de CRUD y auto-generado de código muy interesante me vi atraído a ese framework y me alejé un tiempo de Kohana… Hasta que luego de algunos meses se presentó Kohana 3 (KO3 como se le solía conocer) y lo interesante que tenía era la forma en la que podías trabajar, KO3 tenía todo el poder de Kohana 2 + HMVC.

El HMVC es el clásico MVC (Modelo, Vista, Controlador ultra conocido por todos) pero de forma Jerárquica por lo tanto un controlador podía llamar a los métodos de otro controlador y así sucesivamente hasta obtener un resultado y dicho cambio permitía resolver problemas muchísimo más complejos que el simple uso de MVC, Los problemas en un principio y hasta día de hoy (18 de mayo de 2012) es la falta de documentación precisa y bien explicita sobre el funcionamiento de Kohana 3, por lo que uno se ve obligado a frenar su desarrollo cuando no sabe algo o se olvidó de algo y cuando acudes a la documentación te encuentras con un agujero negro donde todo está en (proceso de desarrollo) y te indican que vayas a leer esas 1200 lineas de código de algún archivo extraviado en el núcleo de KO3 para entender como hacer lo que necesitas.

Por suerte luego de una amplia búsqueda sobre algún framework que me de la satisfacción de Yii para generar CRUD y a la vez la simplicidad y gran potencia de Kohana para trabajar, me topé con FuelPHP.

FuelPHP es un framework que se creó con la intención de copiar las mejores partes de otros frameworks y a la vez agregarle modificaciones para hacerlo más potente, el resultado es una herramienta para el desarrollo de Aplicaciones Web para HTML5 y PHP 5.3 o superior muy interesante y sumamente completa.

Hablamos de generar aplicaciones web debido a que FuelPHP tiene la capacidad de simplificar el trabajo no solo a los creadores de sitios web (de contenido) sino también a los desarrolladores que programan sistemas completos como sistemas de facturación en línea, o sistemas complejos de administración como ERP.

th-2

FuelPHP tiene varias de las características que siempre me gustó de Kohana, por lo que haré un listado de las cosas interesantes que tiene este framework para que puedan revisarlo.

  • Los métodos del core y de la mayoría de las utilerías que trae FuelPHP tienen métodos estáticos lo que permite programar menos ya que no hay necesidad de declarar los objetos antes de utilizarlos, simplemente hay que usarlos, por ejemplo Cli::color(‘Error: The universe is broken.’, ‘red’);
  • Se instala desde el Git por lo tanto su actualización es mucho más sensilla mientras se pasa de versión en versión.
  • Utiliza PHP 5.3 y namespaces lo que nos permite estar a lo último de la tecnología PHP y además nos beneficiamos con las mejoras en la POO. (Notese: que en el los foros de Kohana siempre dicen que es mejor el php5.2 porque no hay necesidad de declarar los namespaces pero yo creo que es un verso barato para decir que todavía no portaron su framework a php 5.3 y te obligan de esa forma a utilizar un “formato de nombres” para no sobreescribirse al no tener los namespaces)
  • Tiene HMVC al igual que Kohana 3 y a diferencia de Yii o symfony 2 que no lo tienen, FuelPHP está pensado para desarrollar aplicaciones web muy complejas y de alto rendimiento. (he trabajado también con symfony 2 y la verdad es una filigrana tecnológica completa pero el problema que tiene es que cuesta mucho trabajar con formularios, las validaciones son un Kaos horrible y el CRUD deja mucho que desear, otro problema es justamente el tamaño de symfony 2 que tiene demasiadas opciones hasta el punto en el que te pasas leyendo más tiempo la documentación por no saber como se hace o porque te olvidaste que programando para resolver el problema)
  • Tiene una clase que ayuda con los problemas de Cross Browser, la mayoría de los desarrolladores de aplicaciones Web saben que programar para varios navegadores es un problema, FuelPHP tiene una clase en su core que se llama Agent que nos permite conocer el tipo de navegador que esta usando el visitante, la versión del navegador e incluso el sistema operativo del visitante (siempre y cuando esté en el user-agent que envía la persona está claro que no es mágico pero es muy útil ya que la mayoría no oculta su user-agent)
  • Clases para trabajar con Arrays al igual que Kohana (symfony no tiene)
  • Algo que me gustó cuando trabajé con symfony es que existe un método para ayudar a cargar los css y js llamada Assets, dicha clase también existe en FuelPHP y nos permite hacer varias cosas interesantes con las rutas que tengamos pre-seteadas sobre el sitio.
  • Clase que maneja las autenticaciones algo que siempre es un problema en algunos sitios y suele ser complejo
  • Tiene una clase muy interesante para manejar los e-mails
  • Contiene un Completísimo ORM para abstraernos de la base de datos
  • Algo que me ha llamado profundamente la atención de FuelPHP es que ellos a diferencia del resto de los frameworks han notado que muchas cosas requieren ejecutar scripts con CRON y para eso han creado una clase especial llamada Tasks que nos permite crear scripts usando FuelPHP que serán ejecutados desde la shell con crontab por ejemplo.

Para ir resumiendo esas son las características más inovadoras de FuelPHP, y al igual que Kohana contiene multitudinarias herramientas o Helpers que nos ayudan con los formularios, las validaciones, el caché, cookies, encriptación, fechas, eventos, formatos, conexiones FTP, recortes de HTML como crear un link, manipulación de imágenes, manejo de lenguages (G11n), cadenas de texto y Seguridad. (hay más pero el texto se está volviendo algo largo de leer por lo que les remito a la documentación de FuelPHP donde seguramente tendrán información más actualizada.

Leave a Comment

Your email address will not be published. Required fields are marked *