2010-01-14 33 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

我用全局完全不同意。我會根據建議使用註冊表模式,或者將會話和數據庫本身設置爲單例,儘管這會使單元測試更加困難。

相關問題