【发布时间】:2010-12-23 13:33:09
【问题描述】:
我昨天问了一个关于命名空间的问题,得到了回答,所以我一直在等待。不过,我越深入这个东西,我就越意识到,我真的很希望能够即时生成命名空间。原因是,我有一个包含所有文件的插件目录。如果我公司的某人正在制作插件......或第三方,我不希望他们为命名空间而烦恼。我想通过目录结构动态生成命名空间。你说,“为什么不这样做!”好吧,我做到了,但我意识到我仍然有潜在的问题,即类被命名为相同的东西,命名空间可以解决这个问题。包也可以解决这个问题,但我找不到 php 支持它们。
-plugin
-tabs
+tabs.php
-package
-tabs
+tabs.php
想法是能够通过 $tabs->func() 和 $package_tabs->func() 访问类;
同样,这不是问题,除了类被命名为同一个东西的可能性。
我有一个解决方法,但如果有人知道动态创建命名空间的解决方法,我会很感兴趣。
我看到的一个问题是 PHP 在“编译”时创建了命名空间。所以使用 fsocks 之类的东西来传递命名空间是失败的尝试。
【问题讨论】:
-
很多框架都是这样做的,你有没有尝试过以 Kohana 为例?
-
我们在谈论 PHP 5.3 命名空间吗?
-
@yoda:没有框架能做到这一点。使用 PHP 是不可能的,因为命名空间是在编译时扩展的。可以确定 命名空间(这是框架所做的),但不能即时更改/创建它们...
-
您想通过动态命名空间选择加载吗?还是定义一个动态命名空间?
-
@ircmaxell,正在谈论分层数据,因为问题本身是不可能的。
标签: php namespaces