SetEnv APPLICATION_ENV development - .htaccess interacting with Zend Framework?

MEM picture MEM · Mar 27, 2011 · Viewed 53.5k times · Source

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.

Answer

Pascal MARTIN picture Pascal MARTIN · Mar 27, 2011

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 :


Taking a look at the given index.php in Zend Frameworks QuickStart, 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'
);