Zend framework 异常的子名称空间
在PHP中,我经常看到异常通常被隔离在子命名空间中 这在流行的框架中发生 例如: 1) Symfony 2、Symfony 3:Zend framework 异常的子名称空间,zend-framework,namespaces,zend-framework2,symfony,Zend Framework,Namespaces,Zend Framework2,Symfony,在PHP中,我经常看到异常通常被隔离在子命名空间中 这在流行的框架中发生 例如: 1) Symfony 2、Symfony 3: 名称空间Symfony\Component\Console\Exception 名称空间Symfony\Component\Config\Exception 名称空间Symfony\Component\Form\Exception 等等 甚至在以下章节中也有描述: 异常类应存储在异常子命名空间中 2) Zend Framework 2: 名称空间Zend\For
- 名称空间Symfony\Component\Console\Exception李>
- 名称空间Symfony\Component\Config\Exception李>
- 名称空间Symfony\Component\Form\Exception李>
- 等等
- 名称空间Zend\Form\Exception李>
- 名称空间Zend\Ldap\Exception李>
- 名称空间Zend\Di\Exception李>
- 等等
- 名称空间DI \定义\异常李>
- Symfony\Component\Console\Exception\CommandNotFoundException
- Symfony\Component\Console\CommandNotFoundException
另一个问题:您可能有两个名称相同但与不同问题相关的异常:例如,您可以创建
NotFoundException
,告知控制器需要返回404
HTTP状态代码,但它也可以告知未找到某些文件。1)PSR-0不包含此类信息。其他PSR不包含太多。2) PSR-3默认异常:PSR\Log\InvalidArgumentException 3)10个类和100个异常-这种情况太牵强。PSR-0声明“从文件系统加载时,每个命名空间分隔符都转换为目录分隔符。”。这意味着具有一个命名空间的所有文件都必须位于一个文件夹中。您不理解这个问题。问题是这样更好:Symfony\Component\Console\Exception\CommandNotFoundException或Symfony\Component\Console\CommandNotFoundException。为什么?你不明白我的答案。我写道,在第二种情况下,根据PSR-0,您的所有异常都将位于一个文件夹中。因此,对于所有异常和一个文件夹中的许多文件,您都有非常具体的名称。开发人员在许多文件中查找一个类是不方便的。实际上,试着从一百个类(文件)中找到一个具体的类。