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.