私が持っている:クエリを保存する場所ArticleControllerはで
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM AcmeMainBundle:Article a WHERE a.showing = 1 ORDER BY createdAt DESC";
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query, /* query NOT result */
$request->query->getInt('page', 1)/*page number*/,
10/*limit per page*/
);
そしてAdminControllerに私が持っている:
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM AcmeMainBundle:Article a WHERE a.showing = 1 ORDER BY createdAt DESC";
$query = $em->createQuery($dql);
$results = $query->getResults();
だから私は重複があります。
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM AcmeMainBundle:Article a WHERE a.showing = 1 ORDER BY createdAt DESC";
$query = $em->createQuery($dql);
データベースからの結果はRepositoriumに保管してください結果や実行がないクエリの場合はどうでしょうか?
正しいプログラミングのルールに従って結果/実行なしでクエリを保持する場所はありますか?
このクエリは、サービスを含むいくつかの場所で使用します。
リポジトリは依然として良い場所です。やや関連性の高い - [CQRS原則](https://en.wikipedia.org/wiki/Command%E2%80%93query_separation) – svgrafov
一般的には、それらを[データマッパー](https://martinfowler.com/eaaCatalog/dataMapper.html)に保管する必要があります。しかし、あなたがDoctrineを使用しているので、それはちょっとした選択肢ではありません。だから、リポジトリはそれです。 –