Как устранить сбой при установке Magento 2 версии 0.74 c демо-данными: «fopen(): Filename cannot be empty»

мастер-установки
сбой
php
0.74-beta7

(Дмитрий Федюк) #1

При установке Magento 2 версии 0.74 с демо-данными (sample data) может произойти сбой при индикаторе прогресса 98%:

Installation is incomplete.
Check the console log for errors before trying again.

При этом в окне «Console Log» будет диагностическое сообщение:

Warning: fopen(): Filename cannot be empty in dev/tools/Magento/Tools/SampleData/Helper/Csv/Reader.php on line 64

Причиной сбоя является дефект в ядре Magento 2 версии 0.74.
Этот дефект приводит к порче первой буквы имён файлов с демо-данными.
Например, имя «Catalog/SimpleProduct/products_gear_bags.csv» портится на «@atalog/SimpleProduct/products_gear_bags.csv».
Соответственно, мастер установки не может найти файлы с демо-данными по их имени.
Правильное устранение этого дефекта я не знаю, однако этот дефект можно устранить с помощью заплатки:

  • Файл: app/code/Magento/SampleData/Helper/Fixture.php

  • Примерная строка: 16

  • Что найти:

    public function getPath($subPath)
    {
        return realpath(__DIR__ . '/../fixtures/' . ltrim($subPath, '/'));
    }
    
  • На что заменить:

    public function getPath($subPath)
    {
        $subPath = strtr($subPath, array(
            '@ales' => 'Sales'
            ,'Pales' => 'Sales'
            ,'@undle' => 'Bundle'
            ,'@ownloadable' => 'Downloadable'
            ,'Drouped' => 'Grouped'
            , '@' => 'C'
        ));
        return realpath(__DIR__ . '/../fixtures/' . ltrim($subPath, '/'));
    }