Отключить режим отладки Joomla в сценарии командной строки - PullRequest
0 голосов
/ 04 октября 2019

У меня есть сценарий данных joomla cli, который завершается с ошибкой (нехватка памяти), когда в глобальной конфигурации включена «система отладки», поскольку в JDatabaseDriver :: execute () есть утечка памяти. Я хотел бы отключить «систему отладки» в начале этого скрипта. Это помогло бы мне, если бы я мог переопределить содержимое файла configuration.php программным способом.

Мой скрипт выглядит следующим образом:

const _JEXEC = 1;

// Load system defines
if (file_exists(dirname(__DIR__) . '/defines.php'))
{
    require_once dirname(__DIR__) . '/defines.php';
}

if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', dirname(__DIR__));
    require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_LIBRARIES . '/import.legacy.php';
require_once JPATH_LIBRARIES . '/cms.php';
require_once JPATH_CONFIGURATION . '/configuration.php';

class Importdata extends JApplicationCli
{
    //...
}

JApplicationCli::getInstance('Importdata')->execute();

Ошибка исчерпания памяти происходит в / joomla / database / driver /mysqli.php в строке 887 (mysqli_fetch_object) только тогда, когда Joomla находится в режиме отладки. Я работаю с PHP 7.1

1 Ответ

0 голосов
/ 06 октября 2019

Вместо:

JApplicationCli::getInstance('Importdata')->execute();

Использование:

$app = JApplicationCli::getInstance('Importdata');
$app->set('debug', 0);
$app->execute();
...