1
如果您希望在整個應用程序中共享查詢,則會在其中放置查詢。應將持久性邏輯放在教義中何處?
在存儲庫中放置持久性邏輯是否是一個好主意,以便存儲庫不僅可以用於查詢,還可以創建和更新對象?
是否有任何其他地方的持久性邏輯不在控制器本身?
如果您希望在整個應用程序中共享查詢,則會在其中放置查詢。應將持久性邏輯放在教義中何處?
在存儲庫中放置持久性邏輯是否是一個好主意,以便存儲庫不僅可以用於查詢,還可以創建和更新對象?
是否有任何其他地方的持久性邏輯不在控制器本身?
把它放進service layer。在這種情況下,您的控制器只知道服務層,但不知道存儲庫層。服務層可以將查詢委託給存儲庫層,或者單獨執行 - 我更喜歡後者。
只是一個基本的例子:
class CommentService
{
private $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function find($id)
{
// do a query here or delegate to a repository
}
public function findByPost(Post $post)
{
// do a query here or delegate to a repository
}
public function save(Comment $comment)
{
// exec an operation here
}
public function delete(Comment $comment)
{
// exec an operation here
}
}
什麼有關文件夾明智?按照文檔中的說明,我的實體位於我的Zend項目的lib文件夾中,是否應該將我的存儲庫放在他們的旁邊? – jere 2012-01-10 01:29:07