ghostwriter/environment

Provides Environment Variables derived from `$_ENV` and `$_SERVER` super-globals

2.0.0 2023-05-08 17:26 UTC

This package is auto-updated.

Last update: 2024-12-06 16:17:17 UTC


README

Automation Supported PHP Version Mutation Coverage Code Coverage Type Coverage Latest Version on Packagist Downloads

Provides Environment Variables derived from $_ENV and $_SERVER super-globals

Installation

You can install the package via composer:

composer require ghostwriter/environment

Usage

$environment = new \Ghostwriter\Environment\Environment();

$environment->has('APP_ENV'); // false
$environment->get('APP_ENV', 'dev'); // dev
$environment->get('APP_ENV'); // throws NotFoundException
$environment->set('APP_ENV', 'production');
$environment->has('APP_ENV'); // true
$environment->get('APP_ENV'); // production
$environment->unset('APP_ENV');

$environment->set('APP_KEY', 'secrete');
$environment->has('APP_KEY'); // true
$environment->get('APP_KEY'); // secrete
$environment->unset('APP_KEY');
$environment->has('APP_KEY'); // false
$environment->get('APP_KEY', 'fallback-value'); // fallback-value
$environment->get('APP_KEY'); // throws NotFoundException

API

interface Variables extends Countable, IteratorAggregate
{
    public function count(): int;
    public function get(string $name, string|null $default = null): string;
    /**
     * @return Generator<non-empty-string,non-empty-string>
     */
    public function getIterator(): Generator;
    public function has(string $name): bool;
    public function set(string $name, string $value): void;
    /**
     * @return non-empty-array<non-empty-string,non-empty-string>
     */
    public function toArray(): array;
    public function unset(string $name): void;
}

Testing

composer test

Changelog

Please see CHANGELOG.md for more information what has changed recently.

Security

If you discover any security related issues, please email nathanael.esayeas@protonmail.com instead of using the issue tracker.

Sponsors

[Become a GitHub Sponsor]

Credits

License

The BSD-3-Clause. Please see License File for more information.