Miércoles, 18 de marzo de 2009
Si el navegador no actualiza las páginas cuando se navega por un proyecto con cakephp (tal vez estando detrás de un proxy o en alguna otra situación) lo que hay que hacer es agregar headers que le digan a los clientes web que la página no se puede guardar en el cache. Esto no tiene que confundirse con el cache interno de cake que asumo que ya lo deshabilitaron.
Una vez detectado esto, lo único que hay que hacer con cakephp es agregar en app/appController.php (o en otro lugar que se prefiera) una linea que diga:
Por ejemplo, si no existía la función y se usan los helprs html y form, podría quedar asi:
class AppController extends Controller {
var $helpers = array('Html', 'Form');
function beforeFilter(){
$this->disableCache();
}
}
Sábado, 14 de marzo de 2009
Si por algún motivo luego de crear controladores y vistas desde la consola con bake aparece este lindo error
Fatal error: Cannot access empty property in ..\cake\libs\view\view.php on line 762
Hay que editar el controlador creado (si el controlador) y sacar de los helpers usados el que figura con ”
Por ejemplo:
Si dice
var $helpers = array('Html', 'Form', '');
Cambiarlo por
var $helpers = array('Html', 'Form');
Miércoles, 21 de enero de 2009
Hoy estuve sufriendo un rato con un error de los mas ingenuo.
Estaba probando el componente auth y siempre que entraba sin estar logueado me mostraba una vista de un controlador que no era el que quería.
Luego de unos cuantos minutos me di cuenta que el pequeño error era que dentro del controlador que quería que se viera tenia el $name seteado con el de otro.
Cosas que pasan por hacer copy&paste.
Jueves, 15 de enero de 2009
Solo para recordar, siempre que se haga un cambio en la base de datos, ya sea nombre de la tabla o algo de la estructura, no hay que olvidarse de borrar el cache (si es que esta activado), sino los cambios no se van a ver.
Para borrar el cache si esta configurado como viene en la distribución estandard de CakePHP deberías borrar lo que hay en app/tmp/cache/models.
Para saber si el cache esta activado y como esta configurado hay que fijarse en app/config/core.php.
Si esta comentada la línea
//Configure::write('Cache.disable', true);
Quiere decir que esta habilitado el cache.
Si la linea de configuración del cache esta así
Cache::config('default', array('engine' => 'File'));
Quiere decir que el cache, de estar habilitado, se esta haciendo en disco.
Para seguir investigando:
- Distintos tipos de cache
- Como borrar los distintos tipos de chache
Ver el Post que disparó esto.
Viernes, 9 de enero de 2009
Hoy inauguramos este sitio de Ayuda para CakePHP. El objetivo es juntar todos los temas que voy viendo e investigando a medida que uso (y aprendo a usar) este framework.
Espero poder incluir información útil (para mi y para otros) ya que muchas veces me pregunto más de una vez las mismas cosas, asi que tratare de postear acá para usar el blog como referencia.
Ojala no sea este el último post