From 4f129424e1915d6a4274ed17b40a30b6070627a9 Mon Sep 17 00:00:00 2001 From: Kirill chEbba Chebunin Date: Fri, 24 Aug 2012 17:06:03 +0400 Subject: [PATCH] Increase memory_limit to 256M if it is lower than this value --- bin/composer | 25 +++++++++++++++++++++++++ doc/articles/troubleshooting.md | 3 +++ 2 files changed, 28 insertions(+) diff --git a/bin/composer b/bin/composer index f65da48d8..7a0f8dbf5 100755 --- a/bin/composer +++ b/bin/composer @@ -8,6 +8,31 @@ use Composer\Console\Application; error_reporting(-1); @ini_set('display_errors', 1); +$memoryInBytes = function ($value) { + //$memoryLimit = ini_get('memory_limit'); + + $unit = strtolower(substr($value, -1, 1)); + $value = (int) $value; + switch($unit) { + case 'g': + $value *= 1024; + case 'm': + $value *= 1024; + case 'k': + $value *= 1024; + } + + return $value; +}; + +$memoryLimit = trim(ini_get('memory_limit')); +// Increase memory_limit if it is lower than 256M +if ($memoryLimit != -1 && $memoryInBytes($memoryLimit) < 256 * 1024 * 1024) { + @ini_set('memory_limit', '256M'); + printf('Warning: memory_limit was increased from %s to %s' . PHP_EOL . PHP_EOL, $memoryLimit, '256M'); +} +unset($memoryInBytes); + // run the command application $application = new Application(); $application->run(); diff --git a/doc/articles/troubleshooting.md b/doc/articles/troubleshooting.md index 9e3cb06a2..ecf4d239b 100644 --- a/doc/articles/troubleshooting.md +++ b/doc/articles/troubleshooting.md @@ -9,6 +9,9 @@ If composer shows memory errors on some commands: The `memory_limit` ini value should be increased. +> **Note:** Composer internaly increases the memory_limit to 256M. +> It is a good idea to create an issue for composer if you get memory errors. + Get current value: php -r "echo ini_get('memory_limit').PHP_EOL;"