PHP命名空间:如果我不需要重新声明已经使用的函数,我是否需要它们?

时间:2012-03-14 21:22:07

标签: php namespaces php-5.3

我想知道,如果我的功能没有相似的名称,我是否需要使用命名空间?

加上我无法从特定文件夹中导入所有名称空间...

2 个答案:

答案 0 :(得分:3)

  

我想知道,如果我的函数没有相似的名称,我是否需要使用命名空间?

没有

但是,命名空间确实提供了比避免命名空间冲突更多的好处,它还会强制您维护良好的目录和文件结构,使您的文件易于查找,以及确定父/子关系的直观方法。

例如:

// Zend/Translate/Adapter.php
class Zend_Translate/Adapter {}

// Zend/Translate/Adapter/Csv.php
class Zend_Translate_Adapter_Csv extends Zend_Translate_Adapter {}

正如您所看到的,与类似对象相关的类在逻辑上组合在一起,并且如上面的代码片段所示,表示可能的父/子关系。一个警告,即使目录可能包含一个类文件和一个子目录,也不能保证子目录中的文件会扩展该文件。

答案 1 :(得分:2)

我认为你是从错误的角度来看待这个问题。当然,如果您知道具有唯一的函数名称,则可以避免使用名称空间。但这是一种非常短视的方法,并没有考虑应用程序的复杂程度,结构如何等等。

正如迈克所提到的,如果您将使用Zend或Symfony等框架或任何其他重要的面向对象编程的代码,那么我强烈建议使用命名空间。假设你想要包含一个很棒的PHP包中的类。如果没有名称空间,您将无法保证不会发生任何冲突。

此外,像Symfony 2.0这样的新框架要求您使用命名空间。所以你最好习惯它。