SetEnv APPLICATION_ENV development - .htaccess interacting with Zend Framework?

apache, zend-framework

Solution

`SetEnv`, used in Apache's configuration (be it a .htaccess file, or a VirtualHost), defines an environment variable.

From PHP, you can read environment variables either :

- using the `getenv()` function.

- Or in the `$_SERVER` or `$_ENV` superglobal variables

Taking a look at the given `index.php` in [Zend Frameworks QuickStart][4], you'll see it uses that environment variable the define the PHP constant called `APPLICATION_ENV` :

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV',
              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                         : 'production'));

And that constant is later used to initialize the application :

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);

Problem

I have the following on my htaccess. ``` SetEnv APPLICATION_ENV development ``` When I pass this file to prodution, I will change it to: ``` SetEnv APPLICATION_ENV production ``` This development and production are set on Zend Framework application.ini correct ? How does Zend and Apache communicate here? How does Zend knows about that htaccess instruction? Thanks.

Original source