我有大量为PHP 5.2.5编写的对象库,我正在尝试权衡为命名空间改进它们的好处。我目前对服务器PHP版本没有任何担心,因为任何相关的机器都在我的控制之下,所以我不担心向后兼容性。至于库的结构,我使用与Zend Framework相同的约定(Library_Module_Class_Name
例如),因此我目前在库内部没有任何命名冲突。我期待将这些类名的库和模块部分移动到名称空间。
那就是说,如果已经编写了代码,是否有任何理由转移到命名空间?
谢谢, 乔
答案 0 :(得分:5)
如果您正在寻找技术原因,我认为没有任何理由证明大规模代码移动的成本。据我所知,命名空间不会带来任何技术优势或性能优势。为一组结构良好的命名空间PHP代码编写体面的自动加载函数会更容易,但除此之外,我无法想到任何可能成为开始转换的明确理由。如果有的话,命名空间解析可能只需要一点点开销(基准测试很简单,但我确定这是一个可以忽略不计的差异)。
话虽这么说,我最近开始更新一组旧的代码来使用命名空间,我很享受它提供的组织能力。代码有一种更加冗长的趋势,但我在升级开始时将IDE切换到Netbeans 6.8,自动完成功能处理了导入和引用命名空间的繁琐工作。实际上,命名空间支持让我印象深刻。它使整个项目变得非常简单,实际上,我敢说,很有趣。
答案 1 :(得分:1)
是的,您的对象是Object而不是Namespace_Prepended_To_An_Object。你宁愿使用Controller而不是Zend_Controller吗?后者看起来很荒谬。