Иногда при обработке с помощью 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