Environment Class for PHP

License: Apache-2.0

Language: PHP


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 super simply, all you have to do is 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 );

Project Statistics

Sourcerank 5
Repository Size 24.4 KB
Stars 11
Forks 2
Watchers 4
Open issues 0
Dependencies 3
Contributors 5
Tags 8
Last updated
Last pushed

Top Contributors See all

Aaron Scherer Luis Cordova Thomas Sebastiaan Stok Daniel Richter

Packages Referencing this Repo

Environment Class for PHP
Latest release 3.0.1 - Updated - 11 stars

Recent Tags See all

3.0.1 April 23, 2018
3.0.0 April 20, 2018
2.0.0 May 30, 2015
1.0.0 May 20, 2014
0.4.0 May 20, 2014
0.3.0 April 16, 2014
0.2.0 April 12, 2014
0.1.0 April 08, 2014

Something wrong with this page? Make a suggestion

Last synced: 2018-10-24 12:56:03 UTC

Login to resync this repository