Cakephp e seus acúmulos de cache. Problemas
Encontrei a solução deste problema e postei no blog, veja aqui.
Cakephp e seus acúmulos de cache. Algo a ser melhorado.
A partir de hoje vou começar a falar da minha experiência com o CakePHP, para os íntimos somente Cake. Tentarei passar a você o máximo de dicas.
Hoje perdi algumas horas tentando resolver uma questão no Cake. Tá rindo? Foi sinistro.
Estava precisando realizar as seguintes instruções dentro de um loop:
- Verificar se o dado existe no banco
- Se não existir, grava o dado no banco
Bem, é uma coisa bem simples dentro de uma aplicação meio complexa, mas enfim, acontece que o cake armazena os dados buscados no banco em cache, isso melhora a performance do processo mas as vezes atrapalha.
Com o cash abastecido, mesmo que tivesse dado preenchido no banco, o cake não o encontrava, pois usava o cache do Find anterior e não me retornava nada.
Tentei usar o $cacheSources=false, getInsertId, execute, mas por incrível que pareça não funcionou.
Depois de algumas horas de tentativas resolvi usar uma espécie de POG. Eu não queria, mas pog sempre resolve.:)
Então eu coloquei a query – como diz um amigo aqui do trabalho – na mão. E lá fui eu “mysql_query(select ……….);”.
Ual! Foi impressionante, mas funcionou. Isso mesmo, com o POG.
Depois ainda fiquei pesquisando o porque disso, será que é um bug do cake, eu não acredito, eu é que não devo estar sabendo usar isso adequadamente.
Bem, até agora eu não sei, se você souber, gostaria de saber.
Perdi algumas horas mas adquiri conhecimento, isso vale mais.
Uma vez um amigo aqui do trabalho consegui resolver o mesmo problema simplesmente com o cacheSources, mas hoje, não foi o caso.
Até a próxima!
Encontrei a solução deste problema e postei no blog, veja aqui.