Как оптимизировать использование Symfony4 Doctrine Repository внутри контроллера - PullRequest
0 голосов
/ 13 марта 2019

Я ищу оптимизированное использование Doctrine Repositories в контроллерах Symfony 4.

На данный момент мне нужно создать код, подобный следующему:

/** @var ArticleRepository $repository */
$repository = $this->getRepository(Article::class);
$articles = $repository->findBySearchterm($search_term);

Toчестно говоря, мне не нравится такой подход.Если мне нужно использовать $this->getRepository(Article::class), я должен сообщить PHPStorm через дополнительную аннотацию, что возвращаемый метод имеет тип ArticleController.В противном случае PHPStorm предупреждает меня, что вызываемый метод ->findBySearchterm($search_term); неизвестен.

Я хотел бы оптимизировать это и напрямую использовать ArticleRepository, возможно, вот так: ArticleRepository::findBySearchterm($search_term);

Есть ли возможность создать что-то, получить прямой доступ к хранилищу без дополнительных затрат на выборкухранилище?На мой взгляд, это также повысит читабельность кода.

1 Ответ

3 голосов
/ 13 марта 2019

Вы можете внедрить хранилище непосредственно в метод контроллера следующим образом:

public function index(ArticleRepository $repository)
{
    $articles = $repository->findBySearchterm($search_term);
    // The rest of the code
}

Это делает symfony autowiring

...