2009-12-05 94 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