2010-01-14 76 views
0

我需要一些帮助来规划如何在PHP中完成我的课程。我有一个会话类和数据库类,我非常需要访问我用(论坛,邮件,用户,其它更多的类)在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'); 

回答

2

对于方案这样我会利用registry pattern的。这是一个不错的explanation

注册表图案就像用于对象的存储装置。

一个代码示例就这样了。

编辑:

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

+0

注册表对象最终不是单身/全局吗? – jmucchiello 2010-01-14 20:43:39

0

类的东西会和数据库,我想全局变量在这里很好。

1

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

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

0

我用全局完全不同意。我会根据建议使用注册表模式,或者将会话和数据库本身设置为单例,尽管这会使单元测试更加困难。

相关问题