我应该如何根据PSR-0组织文件



我与指南和如何命名文件有点混淆。

1。) Vendor<Vendor Name>(<Namespace>)*<Class Name>

中是什么意思

2。)如果我将命名空间AnimalsApp命名并具有abstract class Dog,我是否将GermanShepherd等具体类放在他们自己的文件夹中?

即。AnimalsAppDogGermanShepherdGermanShepherd.phpAnimalsAppDogGermanShepherd.php

此外,我是在GermanShepherd.php文件中包括Dog.php,还是到自动加载器为我加载所有内容?

3。)名称空间的所有子类都需要在每个文件的顶部都有名称空间吗?

4。)<Class Name>在这里是<Interface>的同义词吗?当您拥有诸如class MyClass extends MyAbstract implements MyInterface之类的东西时,该怎么办。您将文件放在哪里?

供应商在 <Vendor Name>(<Namespace>)*<Class Name>

中是什么意思

什么都没有。它的重要性是,相对路径的所有其他部分均由源代码完全指定,因此"在您的控制之外"。供应商的前缀可以让您拥有一个Vendor1AnimalsDog类,而我可以拥有一个Vendor2AnimalsDog,如果这两个类恰好在同一应用程序中使用,则不需要冲突。

实践:选择可以识别自己或您的组织的东西。它可以是您想要的,但是由于这个想法是"其他任何人都不太可能选择的东西"。

如果我命名了命名空间Aimsapp并有一个抽象的类狗,我是否将诸如Germanshepherd之类的具体课程放在他们自己的文件夹中?

您将具体课程放置在其名称空间所指示的位置。如果完全合格的类名称为AnimalsAppDogGermanShepherd,则将其放入目录AnimalsAppDog中。如果FQCN是AnimalsAppGermanShepherd,则将其放入AnimalsApp

我应该提到,以上两个示例似乎不太可能和/或指示不良选择。FQCN应该可能AnimalsAppAnimalsGermanShepherd

此外,我是在germanshepherd.php文件中包括dog.php吗

这取决于自动加载器。

命名空间的所有子类都需要在每个文件的顶部都有名称空间?

名称空间没有子类,它包含类。假设这就是您的意思,那么答案就是肯定的,因为如果不存在名称空间,则根据定义,该类不包含在其中。

<Class Name>在这里是<Interface>的同义词吗?当您拥有类似类myClass的东西时,MyAbstract会延伸Mybstract。您将文件放在哪里?

以完全相同的方式处理界面和类。

相关内容

  • 没有找到相关文章

最新更新