Esta é uma continuação da pergunta Como depurar: HEADER JÁ ENVIADO e GD2 . Especificamente como corrigir os seguintes erros (observe que a primeira linha foi adicionada usando o conselho de depuração anterior para rastrear a fonte):
2014-02-04T14:26:06+00:00 DEBUG (7): Cannot send headers; headers already sent in /home/.../lib/Varien/Image/Adapter/Gd2.php, line 133
2014-02-05T16:14:32+00:00 DEBUG (7): HEADERS ALREADY SENT: < pre >
[0] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:52
[1] /home/.../lib/Zend/Controller/Response/Abstract.php:766
[2] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:83
[3] /home/.../app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /home/.../app/code/core/Mage/Core/Model/App.php:354
[5] /home/.../app/Mage.php:683
[6] /home/.../public_html/index.php:87
</ pre >
Essa pergunta era sobre como depurar esse problema. Esta questão é sobre como corrigi-lo. De acordo com a minha "resposta" nessa pergunta, e tendo feito alguns testes adicionais em uma instalação do Magento com baunilha, posso confirmar que isso parece ser um bug do Magento (v1.7.0.2).
Simplesmente gerenciando imagens em páginas ou blocos estáticos, o uso do gerenciador de imagens de página / bloco padrão do Magento causa esses logs. Para reproduzir, abra uma página que contenha imagens. Haverá um deles registrado por imagem na página. Abra o gerenciador de imagens e visualize as imagens carregadas - haverá outra para cada imagem exibida.
O problema parece estar com essa função, que na minha leitura certamente causará esse erro sempre que uma imagem do CMS for buscada para exibição no painel.
public function display()
{
header("Content-type: ".$this->getMimeType());
call_user_func($this->_getCallback('output'), $this->_imageHandler);
}
Embora não pareça ter nenhum impacto na loja, prefiro não tratar isso como um "erro benigno" (como a Microsoft gosta de chamar coisas que não podem ser corrigidas / corrigidas!). Eu acho que poderíamos modificar o canSendHeader () em lib / Zend / Controller / Response / Abstract.php para não gerar um erro se $ file for gd2.php, mas isso é apenas um desagradável clamor!
Em algum momento, parece que o canSendHeaders é chamado como parte da exibição de imagens CMS no painel, $ throw ou $ this-> headersSentThrowsException devem ser configurados como false, para que isso não gere uma exceção.
Alguma ideia? Ou isso é algo que os proprietários do Magento aprenderam a conviver !?