我搜索應用的一組屬性(配置)到一個新創建的實例的最efficent方式。我的第一個目標是保持應用程序面向對象,第二個目標是能夠使用DI容器。這是我來了這麼遠的樣本:實例配置面向PHP
class ViewLogin {
public $msgLoginGranted;
public $msgLoginFailed;
public function __construct(){
}
protected function onSuccess() {
return $this->msgLoginGranted;
}
protected function onFailure() {
return $this->msgLoginFailed;
}
}
class ControllerLogin {
public function __construct(ModelLogin $model, ViewLogin $view) {
}
}
爲了保持ViewLogin清潔,獨立的配置數據從代碼是什麼做的最好的事情:
創建ViewLogin1一個新的類
class ViewLogin1 extends ViewLogin {
public function __construct() {
$this->msgLoginGranted = 'Welcome!';
$this->msgLoginFailed = 'Login Failed!';
}
}
缺點:靜態類的內容,沒有新的功能,污染種類空間
傳遞一個配置對象來ViewLogin
class ViewLogin {
public function __construct(Config1 $config) {
$this->msgLoginGranted = $config->msgLoginGranted;
$this->msgLoginFailed = $config->msgLoginFailed;
}
}
創建ViewLogin一個裝飾?
移動配置XML/JSON/YAML ...
你對重定向的東西是正確的......當我試圖寫這個虛構的例子時,我搞砸了。更改爲消息傳遞。 – user1517081
@ user1517081在這種情況下,您絕對只使用選項。 :) – Vyktor