Доступ к .htaccess в Zend Framework при запуске файлов из командной строки - PullRequest
1 голос
/ 19 марта 2012

В моем текущем приложении мне нужно запустить некоторые файлы из командной строки.Когда я устанавливаю Среду на Производственный в файле .htaccess, приложение может считывать конфигурацию, связанную с производственным процессом, при запуске через веб-браузер.Но при запуске из командной строки я получаю конфигурацию разработки.Как получить производственную конфигурацию при запуске через командную строку?

Пожалуйста, помогите мне.Заранее спасибо ....

Ответы [ 3 ]

1 голос
/ 19 марта 2012

Вы можете указать среду перед выполнением вашего скрипта:

APPLICATION_ENV=testing php script.php

, а затем получить к нему доступ в вашем скрипте.Окружение в качестве аргумента, см. этот пример: https://github.com/b-b3rn4rd/zf-doctrine-base-tables-generator/blob/master/library/My/Component/DoctrineProvider.php

0 голосов
/ 20 марта 2012

Спасибо всем. У меня тоже есть одно решение. 1. Создайте новый INI-файл (скажем, environment.ini), в котором содержится APPLICATION_ENV = 'production'. 2. Измените zf_config.php, чтобы получить необходимую конфигурацию среды. Он работал как для командной строки, так и для браузера.

$ini_array = parse_ini_file(APPLICATION_PATH."/configs/environment.ini");
defined('APPLICATION_ENV')
        || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') :(($ini_array['APPLICATION_ENV']?$ini_array['APPLICATION_ENV']:'development'))));
0 голосов
/ 19 марта 2012

Если у вас есть отдельный php-скрипт для запуска через CLI, вы можете установить переменную окружения там:

Примерно так: cli.php:

if (PHP_SAPI == 'cli') {
    putenv("APPLICATION_ENV=production");
}

В качестве альтернативыосмотрите $argv и получите оттуда окружающую среду.Может быть, что-то вроде этого:

if (PHP_SAPI == 'cli') {
    foreach ($argv as $val) {
        if (strpos($val, '=')) {
            $bits = explode('=', $val) {
                if ($bits[0] == 'environment') {
                    putenv("APPLICATION_ENV=" . $bits[1]);                
                }
            }
        }
    }
}

Затем вы запустите свое приложение как:

php index.php environment=production
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...