我与指南和如何命名文件有点混淆。
1。) Vendor
在 <Vendor Name>(<Namespace>)*<Class Name>
2。)如果我将命名空间AnimalsApp
命名并具有abstract class Dog
,我是否将GermanShepherd
等具体类放在他们自己的文件夹中?
即。AnimalsAppDogGermanShepherdGermanShepherd.php
或AnimalsAppDogGermanShepherd.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。您将文件放在哪里?
以完全相同的方式处理界面和类。