Archive for September, 2007

/** @todo Acionar o AdSense e começar a ganhar milhões com o blog **/

Finalmente, foi superado o trauma do primeiro post, ainda agravado por uma mudança de ferramenta. Ainda estou tentando descobrir duas coisas: primeiro, um bom e agradável layout; segundo, saber exatamente o que colocar nesta caixinha de texto.

(…)

E eu continuo minha saga com o famigerado ORM do Cakephp. Na maioria das vezes, é só um inconveniente. Algumas, é realmente irritante.

Precisei fazer uma busca em uma tabela utilizando um valor que deveria ser buscado a 4 relacionamentos de distância. Até aí, nada demais, penso eu. No Rails, eu poderia utilizar uma cascata de :include e :through, dependendo do caso. Então eu creio que, no Cake, eu possa fazer simplesmente:

$this->ModelName->recursive = 4;
$this->ModelName->find('ModelDistante.field = ' . $value);

Certo? Claro que não. Após alguns minutos revirando o código, eu resolvo mudar o log para exibir as queries executadas. Para minha surpresa, apenas a primeira recursividade é utilizada na primeira query. Após isto, o Cake vai iterando pelo resultado e resgatando os dados relacionados aos demais níveis da recursividade. Bizarro.
A solução é criar a query (utilizando o método Model::query()) na mão, o que é um tanto ilógico já que se opta a utilizar um ORM para não precisar fazer o trabalho duro.
Ainda bem que foi a primeira vez em mais de um mês no projeto. No mais, o Cake tem se mostrado um framework razoavelmente bom. Tem várias limitações, claro. Espero que em versões futuras mudem o ORM.

Primeira postagem… sobre o quê?

Qual o foco deste blog? Sei lá, talvez uma espécie de “meu querido diário…”. Ou quem sabe só uma ferramenta para descarregar o estresse escrevendo besteiras e xingando a mãe dos outros. Que seja.

(…)

Tive, finalmente, a felicidade de terminar o primeiro projeto usando o CakePHP. Conclusões? Se puder, use Rails (ou o Symphony, caso queira mesmo continuar com o PHP).
Não que o CakePHP seja de todo ruim… Só tem um longo caminho a evoluir, principalmente o ORM. Não sei quem teve a idéia de criar a recursividade ao se resgatar dados de tabelas relacionadas, só sei que foi bem infeliz. Muito melhor criar um XML com os dados das tabelas, como no Symphony.
Além disto, eles tentaram copiar a idéia dos partials do Rails, mas todos os partials devem ser salvos num diretório “views/elements”, o que deixa tudo um pouco confuso.
Sempre li que o Symphony é muito inchado de features, muitas delas desnecessárias. Pode ser, mas ainda assim é melhor, já que funciona como deveria.