Php 真正的意义

Php 真正的意义,php,namespaces,Php,Namespaces,我读过一些关于名称空间的书,我刚才也玩过一些。但我想确保我做对了 1) 所以名称空间在这里是为了从名称的重复中另存为,例如,当您将源从外部添加到应用程序中时,这非常好 2) 使用名称空间以避免重复是一种好的做法吗 3) 使用类似文件夹结构的名称空间是否是一种良好的做法,例如,如果我使用folder/Folder1/Fileone.php这样调用我的名称空间:namespace Zend/Folder1/Fileone 我只是想确保我做到了这一点,名称空间基本上是有组织的,并且可以很好地使用它们

我读过一些关于名称空间的书,我刚才也玩过一些。但我想确保我做对了

1) 所以名称空间在这里是为了从名称的重复中另存为,例如,当您将源从外部添加到应用程序中时,这非常好

2) 使用名称空间以避免重复是一种好的做法吗

3) 使用类似文件夹结构的名称空间是否是一种良好的做法,例如,如果我使用folder/Folder1/Fileone.php这样调用我的名称空间:namespace Zend/Folder1/Fileone

我只是想确保我做到了这一点,名称空间基本上是有组织的,并且可以很好地使用它们

  • 确切地说,名称空间确保声明相同类的两个库/代码库/项目之间没有冲突。在一个应用程序中,分离逻辑上可能具有相同名称的不同类甚至很有用;说
    View\User
    Model\User

    通过将类命名为
    class View\u User
    等,您可以获得同样的好处,但这意味着您必须始终使用该名称来使用该类。看看像Zend Framework 1.0这样的大型项目,看看这会导致多大的混乱。使用名称空间,您可以在同一名称空间和别名类中使用较短的名称来轻松缩短名称

  • 是的,最好使用
    ProjectName\…
    或甚至
    VendorName\ProjectName\…
    命名所有代码的名称空间,以确保避免与第三方代码发生冲突

  • 是的,如果您将文件夹名称与类名(包括名称空间)关联起来,那么使用自动加载器很容易。这也很有道理

  • 我建议您先玩一下Python,以便更好地理解名称空间。@IgnacioVazquez Abrams在这里玩Python毫无意义。在Uffo,是的,您的假设是正确的“…对于名称空间,您可以在同一名称空间和别名类中使用较短的名称来轻松地缩短名称。”您的意思是,例如Zend\Model\Abstract\Inherit执行类似的操作:使用Zend\Model\Abstract\Inherit作为Zend\M\I?是的,尽管
    。。。因为Zend\M\I
    恰好不起作用。您可以执行类似于
    。。。就像伊莫代尔
    。@deceze虽然他能说出像伊莫代尔这样的名字,但这完全是错误的。
    MVC
    中没有模型,但是
    服务
    @Dave这不是重点。是的,我知道MVC中的“模型”是什么。不,这不是讨论它的重点。