Глобальный доступ к значениям конфигурации symfony2 - PullRequest
0 голосов
/ 09 февраля 2012

Как я могу получить значения конфигурации (пользовательские) из любого места в приложении?

Я хочу сделать это вне контроллера в методе prePersist объекта.Внедрение зависимостей и здесь звучит нелогично.

Разве нет статического способа получить класс конфигурации или ядро ​​..?

Ответы [ 2 ]

0 голосов
/ 26 октября 2012

Как насчет моего собственного подхода к использованию пользовательского ConfigClass? Затем вам нужно просто добавить его в нужное место и использовать.

namespace Your\Namespace\YourConfig;

class YourConfig {

  private $energy_config;

  public function __construct() {
    $this->energy_config = array(
        'update_frequency'   => 10,
        'energy_added'       => 10,
        'energy_maximum'     => 200,
    );
  }

}

Позже, если вам нужны значения energy_config, просто добавьте требуемый оператор использования класса:

use Your\Namespace\YourConfig;
...

public function foo() {
  $config = new YourConfig();
  // use your config values
}

Это только моя идея, надеюсь, она поможет, пока кто-то не даст действительно отличное решение :)

0 голосов
/ 09 февраля 2012

Внедрение зависимостей - это способ использования конфигурации в Symfony 2: создание сервисов для вашей логики, внедрение вашей конфигурации в сервисы и внедрение сервисов в другие сервисы с использованием ОО-логики. Что касается вашего конкретного вопроса (используя config в prePersist сущности), ответ таков: если вам нужен доступ к конфигурации, обратный вызов prePersist не является подходящим местом для выполнения вашей логики, поскольку сущности не должны знать о чем-либо, принадлежащем более высоким программным уровням т.е. уровни обслуживания / конфигурации).

Вы можете найти более подробное объяснение здесь: Как пользоваться услугой переводчика внутри сущности?

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