никогда не стоит создавать файлы макетов на лету. Это испортит ваши версии. Объясните проблему, которую вы пытаетесь решить, а не подход, который вы выбрали. Может быть, есть другой способ решить это без генерации файла компонентов пользовательского интерфейса.
Мариус
@Marus это связано с моим другим вопросом в основном, мне нужно динамически добавить пользовательский столбец в сетке заказов на продажу
Idham Choudry
Ответы:
1
Сейчас я использую исходную функцию php для записи / создания файла в моем каталоге расширений, например так:
если есть более правильный способ сделать это в Magento 2, пожалуйста, дайте мне знать, и я приму ответ на этот вопрос, но сейчас, если кто-то захочет использовать это в качестве решения, он работает правильно для меня, но я не рекомендую его
Это очень плохая практика - использование нативных функций PHP устраняет преимущество использования встроенной среды Magento. Я бы посоветовал взглянуть на основные модули, особенно на импорт / экспорт.
Бери
0
Если вы хотите попробовать другой способ, возможно, используйте Magento \ Framework \ Filesystem \ Io \ File и Magento \ Framework \ Convert \ ConvertArray. ConvertArray полезен для создания XML-файла из многомерного массива, и File может написать его для вас (и проверить права доступа, создать каталоги и многое другое). Вот основной пример:
publicfunction __construct(
\Magento\Framework\Filesystem\Io\File $file,
\Magento\Framework\Convert\ConvertArray $convertArray
){
$this->file = $file;
$this->convertArray = $convertArray;}publicfunction createMyXmlFile($assocArray, $rootNodeName, $filename ='file.xml'){// ConvertArray function assocToXml to create SimpleXMLElement
$simpleXmlContents = $this->convertArray->assocToXml($assocArray,rootNodeName);// convert it to xml using asXML() function
$content = $simpleXmlContents->asXML();
$this->file->write($filename, $contents);}
Ответы:
Сейчас я использую исходную функцию php для записи / создания файла в моем каталоге расширений, например так:
если есть более правильный способ сделать это в Magento 2, пожалуйста, дайте мне знать, и я приму ответ на этот вопрос, но сейчас, если кто-то захочет использовать это в качестве решения, он работает правильно для меня, но я не рекомендую его
источник
Если вы хотите попробовать другой способ, возможно, используйте Magento \ Framework \ Filesystem \ Io \ File и Magento \ Framework \ Convert \ ConvertArray. ConvertArray полезен для создания XML-файла из многомерного массива, и File может написать его для вас (и проверить права доступа, создать каталоги и многое другое). Вот основной пример:
если мой массив:
и я называю свою функцию:
Я бы получил следующее в myfile.xml:
источник