【发布时间】:2012-02-04 20:51:59
【问题描述】:
考虑这段代码:
public function showActiveJobsAction($slug)
{
$em = $this->getDoctrine()->getEntityManager();
$category = $em->getRepository('JobeetBundle:Category')->findBySlug($slug);
if (! $category) {
throw $this->createNotFoundException('Unable to find Category entity.');
}
$jobService = $this->container->get('job_service');
$category = $jobService->populateCategoryByItsActiveJobs($category);
return $this->render('JobeetBundle:Category:jobs.html.twig', array(
'category' => $category,
));
}
job_service 需要 JobeetBundle:Category 存储库才能工作。存储库被传递给服务构造函数。都是在 services.yml 中定义的
所以在这种情况下,我最终得到了两个 JobeetBundle:Category 存储库类的实例?
如果是,我怎样才能改变我的设计以做得更好?
可能最好像这样创建代码:
$jobService->getCatetoryWithActiveJobsByItsSlug($slug)
但我仍然想知道容器是否在创建之前寻找对象存在?
【问题讨论】:
标签: dependency-injection symfony