0
我的整個項目基本上分爲兩個部分:需要諮詢與設計 - 將靜態到正常的方法
- 核心
- 輔助類
用戶創建自己的自定義類,並會使用方法幫助類在那裏像:
\Project\System\Helpers\Class::foo();
因此,每個幫助中的每個公共方法類聲明爲靜態。我想出了一個主意,改變這種狀況,使所有用戶自定義類繼承一個特殊的類:
class SingleBeingInheritedClass {
public function helper($class)
{
return new \Project\System\Helpers\$class; // it's just to show the idea
}
}
讓而不是調用靜態功能,用戶可以寫:
$this->helper('class')->foo();
問題我在幾個核心類中使用了這些輔助類中的一些。我不希望核心類繼承與助手相關的任何事情。
在這些核心類中,我也不想讓代碼更長,並且使用這些助手在每個方法中初始化對象。
我該如何處理?或者,也許靜態方法在這裏不是很糟糕?
如果您使用像插件一樣的系統,您應該開始使用OOP。目前你不是。 [如何不使用靜力學來殺死你的測試性](http://kunststube.net/static/) – deceze
這很容易說出來。如果在某些助手類中,我需要調用Url :: segment() - 另一個助手的方法?我可以用$ this創建一個大的繼承來處理它(單行),或者我可以在任何地方初始化對象。在這兩種情況下,我得到一些依賴關係。 – user2252786