Environment Class for PHP

3.0.1 2018-04-23 23:30 UTC

This package is auto-updated.

Last update: 2024-05-25 03:26:48 UTC


This class is pretty simple. It adds environments to your PHP project.

To Install

Install with composer:

composer require aequasi/environment

To Use

To get set up, drop the Environment class in your front controller. For example:


require_once __DIR__.'/vendor/autoload.php';

$environment = new Aequasi\Environment\Environment;

// By default, the environment is set to 'dev'
echo $environment->getType();
// Above will echo 'dev';
// Above will dump true

You can set what the default environment is with Environment::$DEFAULT_ENVIRONMENT (string), and you can set what environments are in debug mode with Environment::$DEBUG_TYPES (string[]).

The allowed environments can also be changed by overriding the Environment::$DEFAULT_TYPE (string[]) parameter.

Setting Environments

Once you are ready to start using other environments (test, staging, and prod), there are a couple ways to do that.

1. php.ini

In your php.ini file, setting php.environment will set the environment for all processes using the php for that php.ini


You can either use Apache or Nginx to set a server variable, or you can modify your $_SERVER header to set the environment

  • For Apache, use SetEnv
  • And Nginx is a little different. Check this StackOverflow post for an example.

3. CLI Arguments

If you are using the SymfonyEnvironment class, you can tie into the arguments (--env and --no-debug) by creating your environment a little differently:

#!/usr/bin/env php

require_once __DIR__.'/bootstrap.php.cache';
require_once __DIR__.'/AppKernel.php';

use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
use Aequasi\Environment\SymfonyEnvironment;

$input = new ArgvInput( );
$env = new SymfonyEnvironment( $input );

if( $env->isDebug() ) {

$kernel = new AppKernel( $env->getType(), $env->isDebug() );
$application = new Application($kernel);
$application->run( $input );