neemzy/environ

There is no license information available for the latest version (1.0.0) of this package.

Lightweight environment manager

1.0.0 2016-02-18 18:15 UTC

This package is not auto-updated.

Last update: 2021-02-16 19:08:34 UTC


README

Lightweight environment manager

HOW TO USE IT

1. Instantiate

$environ = new Neemzy\Environ\Manager();

2. Add environments

When adding an environment, you have to specify :

  • A name
  • A condition closure
  • A callback closure
$environ
    ->add(
        'dev',
        new Neemzy\Environ\Environment(
            function () {
                return preg_match('/localhost/', $_SERVER['SERVER_NAME']);
            },
            function () {
                $pdo = new PDO('sqlite:dev.db');
            }
        )
    )
    ->add(
        'prod',
        new Neemzy\Environ\Environment(
            function () {
                return true;
            },
            function () {
                $pdo = new PDO('mysql:host=MYHOST;dbname=MYDBNAME', 'MYUSER', 'MYPASSWORD');
            }
        )
    );

You can chain declarations as above.

3. ???

$environ->init();

This will browse the environments you declared above. The first one which condition closure returns a truthy value is then set up as the current environment, and its callback closure is triggered.

4. Profit !

Let's assume you're on localhost.

// This will print 'dev'
echo($environ->get());

// Triggers the callback as well
$environ->set('prod');

if ($environ->is('prod')) {
    // There you go !
}