누락 된 속성을 가진 파일을 찾으려면 다음 파일을 수정할 수 있습니다
vendor/magento/framework/Config/Reader/Filesystem.php
다음 코드를 추가하십시오
foreach($configMerger->getDom()->getElementsByTagName('resource') as $element ){
if (!$element->hasAttribute('title')) {
var_dump($configMerger->getDom()->saveXML($element));
}
}
방법에
protected function _readFiles($fileList)
그래서 그것은 보일 것입니다
protected function _readFiles($fileList)
{
/** @var \Magento\Framework\Config\Dom $configMerger */
$configMerger = null;
foreach ($fileList as $key => $content) {
try {
if (!$configMerger) {
$configMerger = $this->_createConfigMerger($this->_domDocumentClass, $content);
} else {
$configMerger->merge($content);
}
} catch (\Magento\Framework\Config\Dom\ValidationException $e) {
throw new \Magento\Framework\Exception\LocalizedException(
new \Magento\Framework\Phrase("Invalid XML in file %1:\n%2", [$key, $e->getMessage()])
);
}
}
if ($this->validationState->isValidationRequired()) {
$errors = [];
if ($configMerger && !$configMerger->validate($this->_schemaFile, $errors)) {
foreach($configMerger->getDom()->getElementsByTagName('resource') as $element ){
if (!$element->hasAttribute('title')) {
var_dump($configMerger->getDom()->saveXML($element));
}
}
$message = "Invalid Document \n";
throw new \Magento\Framework\Exception\LocalizedException(
new \Magento\Framework\Phrase($message . implode("\n", $errors))
);
}
}
$output = [];
if ($configMerger) {
$output = $this->_converter->convert($configMerger->getDom());
}
return $output;
}
이제 잘못된 XML 요소 덤프를 볼 수 있습니다.