什么是通过或PHP访问其他类的其他对象的最佳方式?(What is the best way to

2019-10-29 05:32发布

我需要在规划如何做我的班在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');

Answer 1:

对于这样的情况,我会利用的登记模式 。 这是一个相当不错的解释 。

注册表模式就像一个对象的存储。

一个代码示例是它的方式。

编辑:

在你的榜样(新邮件($会议,$数据库)),我认为,如果你使用注册表模式,你应该这样做,甚至。 这使得每一件事情少耦合,更容易理解和独立更换部件。 由于我没有在过去的几年里做了这么多PHP,我不知道是否有任何IOC框架可用,但会帮助你的实例类。



Answer 2:

我已经想好了单件模式将是一个非常不错的选择在这种情况下。

有在一个不错的简单的教程(有一些示例代码)在talkPHP这似乎是一个合理的实现。



Answer 3:

对于像会话和数据库,我想全局变量在这里很好。



Answer 4:

我用全局完全不同意。 我要么使用注册表模式的建议或作出Session和DB自己单身,尽管这将使得单元测试更加困难。



文章来源: What is the best way to pass or access other objects in other classes in PHP?
标签: php class