Используйте профилировщик Magento 2 в интерфейсе командной строки


В Magento 2 профилировщик можно легко включить с помощью переменной среды

SetEnv MAGE_PROFILER [output]

С [выводом] одного из "html", "firebug" или "csv-файла"

Теперь, если я хочу профилировать сценарий командной строки, то есть команду bin/magento, это не сработает. Конечно, выходные форматы "firebug" и "html" не имеют особого смысла, но "csvfile" имеет, который записывает результат профиля в var/log/profiler.csv.

Я пытался

MAGE_PROFILER=csvfile bin/magento

Безрезультатно.

Я нашел этот код в app/bootstrap.php это проверяет переменную среды MAGE_PROFILER:

if (!empty($_SERVER['MAGE_PROFILER'])
    && isset($_SERVER['HTTP_ACCEPT'])
    && strpos($_SERVER['HTTP_ACCEPT'], 'text/html') !== false
) {
    \Magento\Framework\Profiler::applyConfig(
        $_SERVER['MAGE_PROFILER'],
        BP,
        !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'
    );
}

И, по-видимому, он активирует профилировщик только для HTTP-запросов (исключая запрос AJAX)

Это работает:

HTTP_ACCEPT="text/html" MAGE_PROFILER=csvfile bin/magento

Но это всего лишь обходной путь. Существует ли другой, более стандартный способ профилирования вызовов командной строки?

Author: Fabian Schmengler, 2016-09-16

1 answers

Существует ли другой, более стандартный способ профилирования вызовов командной строки?

По-видимому, нет, поэтому я добавлю свой обходной путь в качестве ответа:

HTTP_ACCEPT="text/html" MAGE_PROFILER=csvfile bin/magento
 3
Author: Fabian Schmengler, 2016-12-21 11:12:32