Как по-быстрому увеличить объём выделяемой памяти для консольного PHP скрипта?

Иногда при обработке с помощью PHP больших и не очень данных, можно словить досадную ошибку посреди выполнения скрипта:

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)

Конечно, можно увеличить memory_limit в php.ini или дописать в скрипт:

ini_set('memory_limit','256M');

Кто-то идёт ещё дальше и добавляет в свои скрипты дополнительные аргументы, для управления лимитом памяти, например, в Laravel это выглядит так:

$this->addOption('memory', 'm', InputArgument::OPTIONAL, 'PHP memory limit');

...

ini_set('memory_limit', $this->option('memory') );

Но зачем? Ведь в PHP это уже реализовано из коробки!

php -d memory_limit=512M script.php args
-d —define

Устанавливает пользовательское значение для каждой из конфигурационных опций, доступных в php.ini.

Таким образом можно переопределить любую опцию или несколько опций сразу:

php -d memory_limit=512M -d max_execution_time=1 script.php args

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *