Por um tempo, o Magento 2 conseguiu validar (e preencher automaticamente) qualquer xml usando um arquivo XSD.
Por exemplo, module.xml
era assim:
<?xml version="1.0">
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
....
</config>
mas agora module.xml
fica assim:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
....
</config>
então o xsi:noNamespaceSchemaLocation
atributo contém urn:magento:framework:
.
Eu sei que isso não tem nada a ver com a validação do lado do servidor dos xmls. Este ainda funciona.
Mas o que posso fazer para recuperar minha validação no meu IDE (PHPStorm no meu caso, mas isso não é importante, pode ser qualquer outra coisa) para reconhecer o caminho para o xsd?
Ainda devo usar o caminho relativo antigo ao criar meus módulos? Ou existe uma maneira melhor de fazer isso?
magento2
xml
validation
Marius
fonte
fonte
Respostas:
Verifique as atualizações do GitHub hoje, o Magento 2 introduziu um novo comando para gerar automaticamente todas as resoluções de URN para o PhpStorm.
Para usá-lo:
bin/magento dev:urn-catalog:generate .idea/misc.xml
onde.idea/misc.xml
está o caminho para o seu arquivo misc.xml do PhpStormTodos os URNs devem ser magicamente resolvidos agora!
Verifique-os em
PhpStorm->Preferences -> Languages&Frameworks -> Schemas and DTDs
PhpStorm 9.0 (windows):
File -> Settings -> Languages&Frameworks -> Schemas and DTDs
fonte
Então o magento mudou o URI do XSD para usar Urns - Eles precisam ser configurados no PHP Storm para que a validação do esquema funcione novamente.
Fonte: http://alankent.me/2015/10/07/xml-schema-resolution-in-php-storm-with-urns-quick-note/
O código de resolução URN é incorporado diretamente no Magento. Felizmente, é muito fácil associar URNs a arquivos reais no seu site local no PHP Strom.
Isto é o que você verá após carregar uma nova versão do magento2 com urnas. Observe que o URN está em vermelho porque o PHP Storm não sabe como resolvê-lo.
Coloque o cursor no URN e clique na lâmpada vermelha à esquerda que aparecerá e selecione “Configurar manualmente o recurso externo” na lista.
Role a lista de arquivos XSD que o PHP Storm localizou automaticamente e selecione o arquivo apropriado. O URN vermelho agora será mostrado em verde e a validação XML está de volta em vigor.
fonte
A geração de URN é suportada pelo plugin Magento 2 para PHP Storm e é apenas um dos muitos recursos úteis que fornece aos desenvolvedores do Magento 2.
Quando o plugin estiver instalado no PHP Storm, acesse
Preferences / Other Settings / Magento2 plugin
e clique emRegenerate URN map
.fonte
Usuários do IDE Eclipse:
(Atualizado em 11 de julho de 2019 para Magento 2.3.1)
Prós:
Contras:
Instruções:
~/workspace
..metadata/.plugins/org.eclipse.wst.xml.core/user_catalog.xml
(se não existir, crie-o)Fonte:
Esta lista acima foi gerada usando o comando da CLI do Magento:
Em seguida, convertido no formato que o Eclipse espera.
fonte