我需要在规划如何做我的班在PHP一些帮助。 我有一个会话类和数据库类,我非常需要访问我使用的所有其他类的内部(论坛,邮件,用户,其它更多的班)
所以,我在找我应该如何访问我的其他类的内部会话类,1个选项,使其GLOBAL,另一个是$会话和$数据库对象传递到每个班级我用这样的...
$mail = new Mail($session, $database);
但是这似乎很乏味,如果我这样做对15+不同类别? 有没有更好的办法?
下面是从我的会话类的一些方法,我将其他类的内部调用一个例子。
// set a value into session
$session->set('auto_id', 'some value for auto_id');
// get a value from session
$session->get('auto_id');
对于这样的情况,我会利用的登记模式 。 这是一个相当不错的解释 。
注册表模式就像一个对象的存储。
一个代码示例是它的方式。
编辑:
在你的榜样(新邮件($会议,$数据库)),我认为,如果你使用注册表模式,你应该这样做,甚至。 这使得每一件事情少耦合,更容易理解和独立更换部件。 由于我没有在过去的几年里做了这么多PHP,我不知道是否有任何IOC框架可用,但会帮助你的实例类。
我已经想好了单件模式将是一个非常不错的选择在这种情况下。
有在一个不错的简单的教程(有一些示例代码)在talkPHP这似乎是一个合理的实现。
我用全局完全不同意。 我要么使用注册表模式的建议或作出Session和DB自己单身,尽管这将使得单元测试更加困难。
文章来源: What is the best way to pass or access other objects in other classes in PHP?