【发布时间】:2011-04-21 17:46:37
【问题描述】:
我正在尝试将一些功能从 phpBB 板包含到我的应用程序中,例如单次登录。但是,如果我包含 common.php,它会显示“无法重新声明类用户”,因为我的应用程序已经有一个类用户。有没有办法避免这种情况?我尝试了一些命名空间,但我从未使用过它们。
所以我需要一种方法来包含 2 个具有相同名称的类。
【问题讨论】:
标签: php class namespaces include
我正在尝试将一些功能从 phpBB 板包含到我的应用程序中,例如单次登录。但是,如果我包含 common.php,它会显示“无法重新声明类用户”,因为我的应用程序已经有一个类用户。有没有办法避免这种情况?我尝试了一些命名空间,但我从未使用过它们。
所以我需要一种方法来包含 2 个具有相同名称的类。
【问题讨论】:
标签: php class namespaces include
Namespaces 是唯一的方法。
【讨论】:
只需重命名您的班级。没什么大不了的
【讨论】:
正如该问题的其他答案中所提到的,如果不重命名您的类或经历让命名空间工作的大惊小怪(例如,确保您拥有正确的 PHP 版本),就无法解决这个问题。
一个好的一般习惯是按习惯命名你的类名。例如,如果您查看 Zend 包,您会看到每个类名都以 Zend_ 为前缀,例如Zend_Mail,Zend_Mime,Zend_Mime_Part。这意味着 (a) 具有相关功能的类之间存在逻辑关系,并且 (b) 类不太可能与您或其他框架创建的类发生冲突。其他项目也遵循这种模式,例如 PEAR。
随着 PHP 5.3 的引入,此要求已过时。但是,5.3 还没有被广泛采用,尤其是共享主机提供商,这个解决方案很可能适合您当前的情况。
【讨论】: