This class is pretty simple. It adds environments to your PHP project.
Install with composer:
composer require aequasi/environment
To get set up, drop the Environment
class in your front controller. For example:
<?php
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';
var_dump($environment->isDebug());
// 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.
Once you are ready to start using other environments (test
, staging
, and prod
), there are a couple ways to do that.
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.
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
<?php
set_time_limit(0);
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() ) {
Debug::enable();
}
$kernel = new AppKernel( $env->getType(), $env->isDebug() );
$application = new Application($kernel);
$application->run( $input );