ozonar
@ozonar
PHP, JS, webRTC

Как в symfony обратиться к БД из статического класса?

Я создал статический класс внутри Symfony (без зависимостей самого Симфони) и хочу работать в нём с БД, используя Doctrine. Также у меня есть entity таблицы в БД и репозиторий для этого Entity.

Как я понял, мне не хватает ContainerInterface, который автоматически есть в генерируемом Symfony контроллере, но у меня нет контроллера.

Мануалы подсказывают мне, что есть вот такой способ:

/** @var FramePagesRepository */
protected $framePages;

public function __construct(FramePagesRepository $framePages) {
    $this->framePages = $framePages;
}


Но он уже выглядит слегка костыльно и требует динамически создаваемого класса, а у меня статический. К тому же, как я понял, инъекция не получится, даже если я создам этот класс динамически, потому что я сделаю это через new. Можно ли как-нибудь полностью отвязать работу с БД от структуры Симфони и обращаться к Репозиторию таблицы напрямую?

Ещё можно создать скрипт Symfony Console и взять EntityManager оттуда, протащив его при создании классов через new в нужные мне места, но это выглядит ещё костыльней.

Скорее всего, в силу малого опыта мой подход неверен в целом, поэтому опишу ситуацию целиком:

У меня есть symfony и websocket сервер Ratchet, работающий вне структуры Синфони, который общается с html страничкой. Сервер запускается с помощью запуска php скрипта через крон.
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
maksim92
@maksim92
Нашел решение — пометь вопрос ответом!
Пример для чтения.
Пример для модификации.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы