Estou codificando com Magento 2 no gvim e sou novo no Magento 2.
Houve muitas vezes que lutei para depurar erros relacionados a xml, bem, cada vez com apenas sorte. Mas situações como essa me deixam realmente chateada: você não sabe onde está o arquivo que está causando esse erro e o depurador também não diz.
Pegue o seguinte e recebo o seguinte: um arquivo xml é inválido. na verdade, eu criei um módulo que possui module.xml, routes.xml, config.xml, {layout} .xml, di.xml sob o arquivo etc ou dirs de exibição / layout. Qual linha do arquivo 12/89 / .. é inválida? o gerado / mesclado? Estou perdido porque não encontro nada em var / gerado e a linha de comando para de funcionar. Qual é a maneira de depuração para encontrar qual é esse erro?
Qualquer ajuda é apreciada.
Erro fatal: Magento \ Framework \ Exception \ LocalizedException não capturado: Elemento de documento inválido 'item': A definição do tipo é abstrata. Linha: 12 Elemento 'item', atributo 'nome': O XPath '@name' de um campo da restrição de identidade de chave 'itemName' é avaliado para um conjunto de nós com mais de um membro. Linha: 89 Elemento 'item': nem todos os campos da restrição de identidade de chave 'itemName' são avaliados para um nó. Linha: 89 Elemento 'item', atributo 'nome': O XPath '@name' de um campo da restrição de identidade de chave 'itemName' é avaliado para um conjunto de nós com mais de um membro. Linha: 90 Elemento 'item': nem todos os campos da restrição de identidade de chave 'itemName' são avaliados para um nó. Linha: 90 em /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php:
Respostas:
A exceção lançada informa que você está usando um elemento em
<item />
que não tem permissão para usá-lo. Então, sim, seu problema provavelmente está relacionado a XML.A primeira coisa que faço para garantir que escrevo XML válido é configurar meu IDE para que ele possa mapear corretamente os esquemas XSD. No PhpStorm, você pode fazer isso usando o elemento auxiliar deixado no
xsi
-namespace:Quando tudo estiver definido corretamente, seu IDE configurará a conclusão do código para você e o alertará se você estiver fazendo algo que não é permitido:
Espero que isto te ajude um pouco.
fonte
bin/magento dev:urn:generate .idea/misc.xml
para gerar mapeamento xsd para PHPStorm. Ele poderá resolver todos os caminhos de urna dos xmls.