Php 如何构造PSR-4自动加载的目录?

Php 如何构造PSR-4自动加载的目录?,php,namespaces,spl-autoload-register,psr-4,Php,Namespaces,Spl Autoload Register,Psr 4,根据,完全限定类名具有以下形式: \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName> 但是我的目录结构如何呢我应该有一个名为MyNamespace的目录吗 它是否不符合PSR-4自动加载-如果我有下面的目录结构 index.php app/controller/ app/model/ app/view/ 这确实有效。但是,不要忘记,根据该文档,您应该将vendor作为顶级名称空间名称。如果单击自动加载程序

根据,完全限定类名具有以下形式:

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
但是我的目录结构如何呢我应该有一个名为
MyNamespace
的目录吗

它是否不符合PSR-4自动加载-如果我有下面的目录结构

index.php
app/controller/
app/model/
app/view/

这确实有效。但是,不要忘记,根据该文档,您应该将
vendor
作为顶级名称空间名称。如果单击自动加载程序链接底部的代码,只需替换其中的
$prefix
变量以匹配项目的基本命名空间,并将
$base\u dir
/src/
更改为
/app/
@Jon,谢谢您的评论。是的,我确实有
vendor作为顶级命名空间名称
——就像上面的虚拟示例中
MyNamespace
是我的
vendor
。我可以把它改成别的东西,比如
Foo
。唯一的问题是我不会有一个名为
MyNamespace
Foo
的文件夹,因为我想让它更灵活。那么这符合PSR-4吗?是的。PSR-4旨在帮助消除目录混乱。只要整个项目基础命名空间以这种方式定义和放置,完全兼容并利用整洁的(在PSR-0中大部分是空的)目录树。@Jon非常感谢。我很高兴我做对了。
index.php
app/controller/
app/model/
app/view/