【发布时间】:2014-09-28 17:20:53
【问题描述】:
这是我现在的项目的祸根,也是我过去的项目。对于它们中的每一个,我都使用了远非最佳的选项。
问题:我的项目有一个实例化任何类的注册表,要求您向它传递一个完整的命名空间,并且检索该完整的命名空间可能会很痛苦。示例:
$registry->getClassInstance('\application\model\SomeModel');
要获得完整的命名空间,我有几个选项,都很麻烦:
-
键入 SomeModel,PHP 将找到命名空间。但是,它的自动完成功能不会打印全命名空间,而是打印 SomeModel() 并在文件顶部添加 USE 全命名空间。如果 IDE 只打印我输入的全命名空间,这个问题就会得到解决。取而代之的是,我必须在自动完成窗口上右键单击两次,复制粘贴完整的 namspace,然后自己粘贴并为其添加起始 /,非常麻烦。
-
对命名空间使用defined() 常量。工作量加倍,性能减半,并且可能会导致本地 CONSTS 出现错误
-
创建一个具有检索所有命名空间的函数的类对象。同样,使用起来很麻烦且不实用
如何让我的命名空间引用易于访问,并且在大型项目中易于更新?大型项目通常如何处理这些?
【问题讨论】:
-
我真的希望有人能帮我解决这个问题,因为我搜索了很多关于如何以有组织的方式处理包含、使用和需求的内容,但我什至找不到关于这个主题的讨论
-
这太令人沮丧了,为什么没有人谈论这个?每个人的项目中都有大量的包含(路径)或命名空间,但我从来没有看到有关如何组织、检索和使它们易于更新的解决方案。这方面的最佳做法是什么?
标签: php namespaces