我找到了解決方案。 PHP中的東西叫做Trait
。
例子:
class UserRepository extends EntityRepository {
public function adminQuery1();
public function adminQuery2();
public function adminQuery3();
public function adminQuery4();
public function adminQuery5();
public function adminQuery6();
public function frontEndQuery1();
public function frontEndQuery2();
public function frontEndQuery3();
public function frontEndQuery4();
public function frontEndQuery5();
public function frontEndQuery6();
}
現在不斷有不同的具體的查詢部分和你的資料庫會很快變得混亂和太長時間。 你可以
- 創建相互繼承遺產或
- 使用性狀
例子下面多個倉庫:
Trait AdminQuery {
public function adminQuery1();
public function adminQuery2();
public function adminQuery3();
public function adminQuery4();
public function adminQuery5();
public function adminQuery6();
}
Trait FrontEndQuery {
public function adminQuery1();
public function adminQuery2();
public function adminQuery3();
public function adminQuery4();
public function adminQuery5();
public function adminQuery6();
}
的實際存儲庫類。
class UserRepository extends EntityRepository {
use AdminQuery;
use FrontEndQuery;
}
這樣做的好處是,關鍵字this
將把其中的Trait
使用意味着你有機會獲得的EntityRepository
所有功能終於找到了用例Trait
上下文。
謝謝您的回答。我需要它,因爲我有一個實體,實際上代表兩個類。我沒有找到如何用繼承來解決這個問題。這是另一個問題,這裏解釋這裏:http://stackoverflow.com/questions/9501755/doctrine-persist-php-class-which-inherit-doctrine-entity – Charles 2012-03-14 07:38:35
我真的想知道,在一個存儲庫具體到管理方法和操作,以及特定於前端方法和操作的存儲庫,管理同一個實體。太糟糕了,沒有辦法根據Access路徑指定可以使用哪個Repository。 – RedactedProfile 2014-08-18 19:06:44