aequasi / environment
Environment Class for PHP
Requires (Dev)
- phpunit/phpunit: ~3.7
- raulfraile/ladybug: dev-master@dev
- symfony/console: ~2.0
Suggests
- symfony/console: For use with the Symfony2 Framework and the CLI
This package is auto-updated.
Last update: 2024-11-25 04:34:07 UTC
README
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:
<?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.
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
2. $_SERVER['PHP_ENVIRONMENT']
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 <?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 );