Подтвердить что ты не робот

SetEnv APPLICATION_ENV development -.htaccess взаимодействует с Zend Framework?

У меня есть следующее на моем htaccess.

SetEnv APPLICATION_ENV development

Когда я передаю этот файл в файл, я изменил его на:

SetEnv APPLICATION_ENV production

Это

развитие

и

производство

установлены на Zend Framework application.ini правильно?

Как Zend и Apache общаются здесь? Как Zend знает об этой инструкции htaccess?

Спасибо.

4b9b3361

Ответ 1

SetEnv, используемый в конфигурации Apache (будь то файл .htaccess или VirtualHost), определяет переменную среды.

Из PHP вы также можете прочитать переменные среды:


Взглянув на данный index.php в Zend Frameworks QuickStart, вы увидите, что он использует эту переменную среды, определяющую константу PHP, называемую APPLICATION_ENV:

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

И эта константа позже используется для инициализации приложения:

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

Ответ 2

Поток коммуникации, как вы его называете, следующий:

Если вы используете

SetEnv APPLICATION_ENV

в вашем .htaccess, будет использоваться среда, которую вы там установили. Почему?

Следующий фрагмент кода из вашего index.php не определяет константу, если она уже определена, что имеет место, если вы используете SetEnv в своем .htaccess.

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

Если ваш .htaccess не определяет константу, будет использоваться значение, указанное в index.php. Если бы я был вами, я бы все равно синхронизировал его. Поскольку вы можете ошибаться, например, забыть установить AllowOverride для своего vhost, что приведет к ситуации, когда среда будет установлена ​​index.php, даже если присутствует .htaccess.