首页 / PHP / 面向对象PHP中的实例配置
面向对象PHP中的实例配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了面向对象PHP中的实例配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1740字,纯文字阅读大概需要3分钟。
内容图文
![面向对象PHP中的实例配置](/upload/InfoBanner/zyjiaocheng/770/e889810ee07a4450b9b01c9a6f568b85.jpg)
我正在寻找最有效的方法将一组属性(配置)应用于新创建的实例.我的第一个目标是保持面向应用程序对象,第二个目标是使用DI容器.这是我到目前为止的样本:
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 …
解决方法:
我不明白你为什么需要ViewLogin1.如果你想在你的框架中准备它并立即在应用程序中使用它我会在框架中使用ViewLoginAbstract,在应用程序中使用ViewLogin,即使没有引入新功能(记住你可能想要用die替换重定向) “你想做什么黑客?”或类似的东西).
另一方面,当你的应用程序中有多个登录表单时,我会像Zend Framework一样阻止你.
当你看看他们如何使用*Controller class时,他们为每个控制器使用一个类,为视图使用一个通用ViewModel class.
更详细的默认indexAction:
public function indexAction()
{
return new ViewModel(array(
'content' => 'Placeholder page'
));
}
所以我重复使用ViewLogin并且只是通过配置,因为没有引入新的功能(只是确保你不希望将来添加日志记录或其他功能).
徘徊在我看来登录后重定向页面应该是控制器不负责查看(视图应该只负责显示html其他前端的东西)所以我不确定为什么你把重定向放到视图中.
内容总结
以上是互联网集市为您收集整理的面向对象PHP中的实例配置全部内容,希望文章能够帮你解决面向对象PHP中的实例配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。