Primeras impresiones de CakePHP

Uno de los primeros artículo de este blog hablaba de mis primeras impresiones sobre Ruby on Rails. Ahora voy a hablar sobre otro framework MVC que estuve investigando y utilizando en los últimos días. Se trata de CakePHP, como podrán intuirlo, para PHP.

Llegué a CakePHP porque me gustó mucho la filosofía detrás de Ruby on Rails, pero no tenía tiempo de ponerme a aprender un lenguaje nuevo, como es Ruby. Me pregunté entonces si no existiría algo similar en un lenguaje que conociera, como PHP. Así fue como encontré CakePHP. También encontré otros frameworks MVC para PHP, que no tuve tiempo de investigar, como por ejemplo, el francés symfony.

Creo que no me equivoco si digo que CakePHP es una copia de Ruby on Rails. Las funcionalidades son idénticas, así como el nombre de muchos de los métodos. Pero bueno, por lo menos, podemos programar con PHP al estilo Rails. De hecho, este mismo blog lo desarrollé con CakePHP en tan solo un par de horas.

Sin embargo, CakePHP tiene un problema grave: la falta de buena documentación y ejemplos. Creo que por más bien que funcione, si falta eso, es una gran contra. CakePHP tiene un manual muy básico y, a mi parecer, muy mal organizado. El manual no llega a cubrir con un nivel aceptable todas las características del framework y remite casi todo el tiempo a la documentación de la “API”. Pero la documentación de la API es todavía peor, por no decir casi inservible. Dificil y oscura para navegar, y sin ejemplos que ilustren el uso de los métodos, se hace imposible entender cómo hacer ciertas cosas.

Sin dudas, CakePHP es una buena alternativa a Rails, para programadores de PHP, pero una documentación tan pobre y un manual casi muerto hacen que realmente pueda llegar a ser más fácil aprender un muy buen lenguaje nuevo, como es Ruby y un framework mucho mejor documentado, y con mayor soporte de la comunidad, como esRuby on Rails.

 

Limpiar la cache de CakePHP al actualizar Modelos

Uno de los errores más frecuentes que se suelen ver al trabajar con CakePHP es que, por más que actualicemos nuestra base de datos (por ejemplo, agregando nuevos campos), los modelos no se ven actualizados.

Esto se debe al hecho de que CakePHP cachea los modelos en la carpeta app/tmp/cache/models.

Cuando estamos en modo development, este no es el caso. El problema aparece en producción. En estos casos lo que tenemos que recordar siempre es borrar el contenido de esa carpeta para forzar el refresco de los modelos.

Es importante recordar también que toda la carpeta tmp y sus subcarpetas necesitan permisos de escritura.