Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Essa, com certeza, foi a maior noobada que já fiz em programação. <_<
Durante o desenvolvimento, nem me preocupei com a segunda parte mais importante do MVC, a View.
Fiz todas as rotinas, classes concretas e abstratas, interfaces, aprendi a implementar o Observer, mas fiz a burrada de TODAS as saídas de texto de uma parte específica do projeto serem realizadas através de print / printf().
Acontece que agora que acabei essa parte, não consigo mostrar no template da View o resultado de todo o trabalho, uma vez que não consigo criar as variáveis de template para isso.
Eu estou usando o Zend Framework, mas o problema não chega a ser culpa dele.
Normalmante, a View em frameworks possui os métodos assign() para criar as variáveis ou permitem fazer essa atribuição através do __set(). No ZF não é diferente:
$this -> view -> assign( 'foo', 'bar' );
// é o mesmo que
$this -> view -> foo = 'bar';
// e pode ser acessado no template
echo $this -> foo; // Saída bar
Mas, como o tapado aqui fez com print / printf(), não tenho, por exemplo, um nome de variável, usado como primeiro argumento do tal assign().
E mesmo que tivesse, por esse parte estar dentro de um loop, essas variáveis seriam sobrescritas sempre, e eu teria apenas o último conjunto delas.
Eu pensei em estruturar num array tendo, como índices, o valor corrente da iteração para, no template, talvez estilizar esse valor antes de mostrar todas as mensagens dessa iteração. Seria, teoricamente, perfeito.
Mas como eu implementei o Observer e parte das mensagens estão no Contexto de Uso, parte no Objeto Observável e parte no Objeto Observador, não consegui montar uma estrutura racionalmente correta.
Tentei criar um "logger" simples para compartilhar as mensagens entre essas três classes, mas não ficou nada "bonito" (deu até coceira :lol: ).
Alguma sugestão?
Carregando comentários...