2009-12-05 98 views
1

我目前正在研究一個php框架,它在某些情況下像ZendFramework一樣結構化。 它有MVC等 我沒有找到任何平等匹配我的問題。

我的「問題」是我有可變數量的類(模型,控制器),例如, http_handler。 現在我有很多類,我不能將它們全部手動設置爲變量。

我可以使用$ GLOBALS設置$ variableVar嗎?

foreach($classes as $class) 
{ 
    include_once($class . '.php'); 
    $GLOBALS[$class] = new $class; 
} 

這是否會創建一個新的變量,這將通過整個代碼訪問? 例子:

//... code 
$http_handler->sendRequest($someArgs); 
//... code 

回答

3

會,但你要導入全局變量在方法的範圍:

function foo() 
{ 
    global $http_handler; 

有這個更好的解決方案。然而。例如,查看singleton pattern

我問一個關於如何最近除了使用Singleton模式,也許有些問題的答案給你更多的想法,組織所有這些類問題:here

+0

好的,非常感謝你。 ..但單身模式仍然需要一個變量分配;) 我目前有一些「主要」對象包含我的框架的「子」對象的單例/工廠實例。 $ main-> controllers-> SpecificController->方法() $ main-> model-> User-> SpecificModel-> Method() 如果我有一個控制器/模型,這個巨大的語法被包裝成一個簡單的語法,也用於安全修正: $ user =&$ main-> model->用戶 – 2009-12-05 14:41:54

+0

的確,您必須在其中指定一個變量,但單身人士方法仍然比使用全局工具感覺更清潔,您可以完全就像你可以用一個全局對象一樣。看看我的問題鏈接,那裏有不同的解決方案,除了分配變量 - 而且這樣工作的警告並不是真正符合OOP的精神,這也是很重要的一點,不管是否依靠它來生存。 – 2009-12-05 14:49:45