DebugOnTheTable – Logs – Parte 2

Continuando a serie sobre como debugar no Magento, agora vamos aprender a resolver o problema de XML mal formatado, que gera um erro como abaixo nos nossos arquivos de logs:

ERR (3): Warning: simplexml_load_string() [<a href="function.simplexml-load-string">function.simplexml-load-string</a>]:
Entity: line XX: parser error : Start tag expected, '<' not found in
[MAGENTO_ROOT]\app\code\core\Mage\Core\Model\Layout\Update.php on line XXX

Para resolver este problema, que normalmente é causado por comentários em trechos do código xml do seu tema, ou por se ter uma tag xml sobrando ou faltando, temos que alterar um arquivo do Core do Magento.

Supondo que estejamos em ambiente de desenvolvimento, podemos pegar o arquivo Update.php, que esta em:

app\code\core\Mage\Core\Model\Layout

e coloca-lo em: (Necessário criar as pastas)

app\code\local\Mage\Core\Model\Layout

Agora por volta da linha 433, você vera o código abaixo:

foreach ($updateFiles as $file) {
 $filename = $design->getLayoutFilename($file, array(
 '_area' => $area,
 '_package' => $package,
 '_theme' => $theme
 ));
 if (!is_readable($filename)) {
 continue;
 }
 $fileStr = file_get_contents($filename);
 $fileStr = str_replace($this->_subst['from'], $this->_subst['to'], $fileStr);
 $fileXml = simplexml_load_string($fileStr, $elementClass);
 if (!$fileXml instanceof SimpleXMLElement) {
 continue;
 }
 $layoutStr .= $fileXml->innerXml();
 }

Altere, adicionando Mage::log(print_r($filename, true)) e deixando o codigo assim assim:

foreach ($updateFiles as $file) {
 $filename = $design->getLayoutFilename($file, array(
 '_area' => $area,
 '_package' => $package,
 '_theme' => $theme
 ));
 if (!is_readable($filename)) {
 continue;
 }
 $fileStr = file_get_contents($filename);
 $fileStr = str_replace($this->_subst['from'], $this->_subst['to'], $fileStr);
 $fileXml = simplexml_load_string($fileStr, $elementClass);

 Mage::log(print_r($filename, true)); //adicionamos este trecho de código

 if (!$fileXml instanceof SimpleXMLElement) {
 continue;
 }
 $layoutStr .= $fileXml->innerXml();
 }

Agora apague seu arquivo de logs, em:

[sua_instalacao_magento]/var/log/system.log

Agora apague seu arquivo de logs,Agora atualize a pagina do site, com isso feito, será gerado um novo arquivo de log, e não iremos mais ver o antigo erro no arquivo de logs, mais sim, isso: em:

2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\core.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\page.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\directory.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\cms.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\customer.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\catalog.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\catalog_msrp.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\catalogsearch.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\payment.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\sales.xml
2012-11-05T02:32:41+00:00 ERR (3): Warning: simplexml_load_string() [<a href="function.simplexml-load-string">function.simplexml-load-string</a>]: Entity: line 58: parser error : Start tag expected, '<' not found in [magento_root]app\code\core\Mage\Core\Model\Layout\Update.php on line 444
2012-11-05T02:32:41+00:00 ERR (3): Warning: simplexml_load_string() [<a href="function.simplexml-load-string">function.simplexml-load-string</a>]: in [magento_root]app\code\core\Mage\Core\Model\Layout\Update.php on line 444
2012-11-05T02:32:41+00:00 ERR (3): Warning: simplexml_load_string() [<a href="function.simplexml-load-string">function.simplexml-load-string</a>]: ^ in [magento_root]app\code\core\Mage\Core\Model\Layout\Update.php on line 444
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\sales/billing_agreement.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\sales/recurring_profile.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\cataloginventory.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\shipping.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\checkout.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\paypal.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\poll.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\googlecheckout.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\review.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\tag.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\reports.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\googleanalytics.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\wishlist.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\paypaluk.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\contacts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\sendfriend.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\rss.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\productalert.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\oauth.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\authorizenet.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\bundle.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\captcha.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\centinel.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\newsletter.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\downloadable.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\pagecache.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\persistent.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\weee.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\xmlconnect.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awaabstratoproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awaconcretismoproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awacordelproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awadestaquesproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awafigurativoproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awafotografiaproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awahomeproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\awastreetproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\googleanalyticsplus.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\gomage-checkout.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\gomage-deliverydate.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\gomage-sagepay.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\easybanner3.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\base\default\layout\onestepcheckout.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\inchoofeaturedproducts.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\youtubesearch.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\mw_affiliate.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\categorysearch.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\default\layout\mw_credit.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\cielo.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\Multikomerce_Redecard.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\moneybookers.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\vertnav.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\easyflags.xml
2012-11-05T02:32:41+00:00 DEBUG (7): [magento_root]app\design\frontend\default\meu_tema\layout\easytabs.xml

Dessa maneira conseguimos enxergar qual o arquivo xml o Magento esta engasgado, e achar uma solução para ele. Vale a pena ressaltar que isso funcionar apenas com os arquivos de xml do seu tema.

No caso, somente para explicar, ele ira exibir o nome do arquivo xml, caso haja um erro, ele ira entrar no IF, e neste caso, sera mostrado uma mensagem com o Warning: simplexml_load_string() […].

No exemplo acima, na linha 10, é onde indica o arquivo que está com problema, e neste caso temos que edita-lo e verificar qual o erro do mesmo.

Apos concerta-lo, você não deve mais enxergar nenhum problema, e recebera uma lista apenas dos arquivos em xml.

Neste caso, apague esse arquivo que criamos e parabéns, quantos menos erros na sua loja, mais rápido ela pode ficar.

[toggle title=”Fonte”]
http://www.brascommerce.com.br/blog/
[/toggle]

2014-08-29T13:46:26+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x