Kohana: framework PHP basado en CodeIgniter

En 2007, cuando PHP 5 todavía no era el estándar dominante y la mayoría de proyectos seguían en PHP 4, apareció Kohana. Era un fork de CodeIgniter, el framework de EllisLab que por aquel entonces gozaba de enorme popularidad por su curva de aprendizaje suave y su documentación impecable. Pero CodeIgniter tenía un problema: lo controlaba una empresa, seguía soportando PHP 4 y avanzaba despacio.

Un grupo de desarrolladores decidió tomar el código, darle un giro orientado a PHP 5 puro y gestionarlo de forma comunitaria. Así nació Kohana. Ligero, rápido, sin dependencias externas y con una arquitectura MVC que cualquier usuario de CodeIgniter reconocería al instante.

Qué lo diferenciaba de CodeIgniter

Kohana no era un reemplazo directo de CodeIgniter; era la respuesta a sus limitaciones más discutidas en esa época. Las diferencias más relevantes:

  • PHP 5 obligatorio: nada de compatibilidad con PHP 4. Eso significaba clases reales, herencia, interfaces y acceso a todo lo que PHP 5 ofrecía frente al PHP procedimental de los años anteriores.
  • Herencia en cascada: controladores, librerías, helpers y vistas podían cargarse desde la aplicación, desde el sistema o desde módulos instalados. Las opciones de configuración se heredaban y podían sobreescribirse en cada nivel sin tocar el núcleo.
  • Sin conflictos de nomenclatura: las clases usaban sufijos explícitos (_Controller, _Model) para evitar colisiones con librerías de terceros, algo que en CodeIgniter podía ser un quebradero de cabeza en proyectos grandes.
  • Helpers como clases estáticas: en lugar de funciones sueltas, Kohana agrupaba los helpers en clases. En vez de form_open(), se escribía Form::open(). Más ordenado y más fácil de extender.
  • Carga automática de clases: librerías, modelos y helpers se cargaban al vuelo cuando se necesitaban, sin precargarlos al inicio de cada petición.
  • Sistema de eventos: los eventos podían añadirse, modificarse o eliminarse en tiempo de ejecución, lo que permitía alterar el comportamiento del framework sin parchear el núcleo.
  • GET, POST, COOKIE y SESSION sin restricciones: CodeIgniter limitaba el acceso a $_GET por defecto; Kohana los trataba todos igual, con el mismo filtrado XSS disponible.
  • Gestión comunitaria: sin una empresa detrás que marcara los tiempos, las decisiones se tomaban en abierto y los parches llegaban más rápido.

Un controlador básico en Kohana

La estructura de un controlador en Kohana era reconocible para cualquiera que viniese de CodeIgniter, aunque con la sintaxis más limpia que permitía PHP 5:

class Welcome_Controller extends Controller {

    public function index()
    {
        // Cargar una vista
        $view = new View('welcome');
        $view->title = 'Hola desde Kohana';
        $view->render(TRUE);
    }

    public function usuario($id)
    {
        // Acceder a parámetros GET
        $formato = Input::get('formato', 'html');

        $modelo = new Usuario_Model();
        $datos  = $modelo->obtener($id);

        $view = new View('usuario');
        $view->datos   = $datos;
        $view->formato = $formato;
        $view->render(TRUE);
    }
}

Los modelos extendían de Model y tenían acceso directo al query builder de la base de datos. La carga de librerías se hacía con $this->load->library('nombre'), igual que en CodeIgniter, aunque Kohana también permitía instanciarlas directamente gracias al autoloader.

Evolución y fin del proyecto

Kohana tuvo su momento de mayor actividad entre 2008 y 2012. La versión 3.x supuso una reescritura importante que lo hizo aún más modular, con un sistema de módulos más flexible y una separación más clara entre el núcleo y la aplicación. En esos años compitió de tú a tú con otros frameworks PHP populares como CakePHP, Symfony o el propio CodeIgniter.

El problema llegó con la irrupción de Laravel a partir de 2012. Laravel tomó muchas de las ideas que Kohana había popularizado (composición por módulos, herencia en cascada, helpers organizados en clases) y las combinó con una sintaxis más moderna, Composer como gestor de dependencias y una comunidad que creció de forma exponencial. Kohana no pudo competir.

El proyecto quedó prácticamente abandonado alrededor de 2016. La última versión estable fue la 3.3.6. El repositorio oficial en GitHub lleva años sin actividad significativa y el dominio kohanaphp.com ya no está operativo.

¿Para qué sirve recordarlo hoy?

Kohana no es un framework que vayas a usar en un proyecto nuevo. Pero su historia tiene valor para entender cómo evolucionó el ecosistema PHP: la transición de PHP 4 a PHP 5, el debate entre el control corporativo y la gestión comunitaria del software libre, y cómo las decisiones de diseño que tomaron sus autores en 2007 acabaron influyendo en frameworks que sí siguen activos hoy.

Si trabajas con CodeIgniter, Laravel o cualquier framework PHP moderno, parte del vocabulario que usas (módulos, cascada de configuración, helpers como clases) tiene raíces directas en lo que Kohana estableció.

Imagen: Pexels / Pixabay

COMPARTE ESTA NOTICIA

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP