通過我的多項研究,我遇到了設置會話和數據庫對象的工廠方法,這些對象在開發過程中一直使用。我想知道的是,拋開個人偏好(儘管我會沉浸在任何人的觀點中),這種通用方法是否有效,是否有效(意思是說,我是否正確使用它)?如果不是的話,你有沒有對如何改進它的建議?將會話和數據庫對象傳遞給PHP中的類
背景
我創造了這樣的代碼,以便當調用類通過數據庫和會話對象的類。我希望能夠傳遞相關對象/引用,以便可以使用它們。
Call類
這個類的調用靜態函數,就像這樣:
class CALL {
public static $_db, $_session;
public status function class1() {
$function = new class1();
$function->set_session(self::$_session);
$function->set_database(self::$_db);
return $function;
}
public status function class2() {
...
}
...
}
的_set類
class _set {
public $_db, $_session;
public function __construct() { ... }
public function set_database($_db) {
$this->_db = $_db;
}
public function set_session($_session) {
$this->_session = $_session;
}
}
現在的類引用。
class class1 extends _set {
function __construct() { ... }
function function1() { return "foo"; }
...
}
所以,在前進,課程將使用CALL::class1
或CALL::class2
調用。之後,他們可以照常進入,又名:
CALL::$_db = $database->_dbObject;
CALL::$_session = $_SESSION;
$class1 = CALL::class1;
echo $class1->function1(); //prints "foo".
好吧..你可以從擺脫全球狀態開始。這絕對是一個改進。也許[這](http://stackoverflow.com/a/11369679/727208)給你一些想法。 –
哇,令人敬畏的例子,正是我所需要的。我在這個答案上加了一個+1,並且在我的問題中將它標記爲正確。謝謝! – smcjones