brandembassy / php-memory
A simple tool to provide an easy-to-use API to get memory configuration from php.ini.
Installs: 99 457
Dependents: 2
Suggesters: 0
Security: 0
Stars: 5
Watchers: 5
Forks: 0
Open Issues: 1
Requires
- php: >=7.1
- marc-mabe/php-enum: ^3.0 || ^4.1
Requires (Dev)
- mockery/mockery: ^1.0
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^8.5
Suggests
- nette/di: Needed for registering package using the Nette Extension.
This package is not auto-updated.
Last update: 2024-12-19 11:26:03 UTC
README
A simple tool to provide an easy-to-use API to convert memory limit configuration from php.ini
to bytes.
Why
Core directive memory_limit
in php.ini
is a simple string. An administrator or a programmer can set several valid values, e.g.:
500
= 500 bytes128M
= 134 217 728 bytes1G
= 1 073 741 824 bytes
You can obtain the original string value through ini_get('memory_limit')
function. However, there is no built-in PHP function to provide an easy access to the byte value.
Installation
Add the package to your composer.json
:
composer require brandembassy/php-memory
Usage
Create the MemoryLimitProvider
service (or better, inject it using your DI container):
$configuration = new \BrandEmbassy\Memory\MemoryConfiguration();
$limitProvider = new \BrandEmbassy\Memory\MemoryLimitProvider($configuration);
There is also a DI extension for Nette Framework (you must have the nette/di
package installed). Just register it in your services.neon
file:
extensions:
- BrandEmbassy\Memory\Bridge\MemoryLimitNetteExtension
You can then access the byte value of PHP memory limit like this:
$limitInBytes = $memoryLimitProvider->getLimitInBytes();
Any questions or ideas to improve? Feel free to open an issue or send a PR!