Где хранить константы приложения в Zend? - PullRequest
9 голосов
/ 21 декабря 2010

У меня есть несколько констант, которые мне нужно определить для моего приложения, например, SITE_KEY, который будет содержать случайный ключ для соленых паролей.

Хотя я не уверен, где мне их определять. Я думал разместить их в public / index.php, но это выглядит немного грязно. Есть ли конкретное место, куда они должны пойти, по словам Зенда или что-то еще?

Спасибо

EDIT

Я пытаюсь сделать это так: В моем application.ini у меня есть это:

siteglobal.sitekey = "test"

и в моем bootstrap.php файле:

protected function _initGlobals()
{
$config = $this->getOptions();
define('SITE_KEY', $config['siteglobal']['sitekey']);

}

Тем не менее, это не работает, когда я пытаюсь отобразить SITE_KEY в моем контроллере следующим образом:

echo SITE_KEY;

Это ничего не показывает. Есть идеи?

Ответы [ 3 ]

12 голосов
/ 21 декабря 2010

В моем приложении я объединяю подходы Хаима и Еруна.Я храню константы приложения в моем application.ini, затем анализирую их в Bootstrap и помещаю их в Zend_Registry.

Итак, в application.ini

constants.site_key = my_site_key

В Bootstrap

protected function _initConstants()
{
    $registry = Zend_Registry::getInstance();
    $registry->constants = new Zend_Config( $this->getApplication()->getOption('constants') );
}

Затем я могу получить доступ к этим константам из любого места в приложении (модель, контроллер и т. Д.)

Zend_Registry::getInstance()->constants->site_key
1 голос
/ 21 декабря 2010

Вы пробовали Zend_Registry ?Он используется для хранения значений приложения, объектов и т. Д.

Store:

Zend_Registry::set('index', $value);

Получить:

$value = Zend_Registry::get('index');
0 голосов
/ 21 декабря 2010

в

application / configs / application.ini

myvar = myvalue

после получения их как:

$myvar = $application->getOption('myvar');

readподробнее ....

...