我的文件结构为
/
/app/
/app/logs/
/app/templates/
/app/index.php
/public_html/
/public_html/.htaccess
/public_html/index.php
/vendor
/vendor/(all vendor here)
我的vhost指向/ public_html
在app / Index.php中
namespace App;
class Index {}
Composer.json
"autoload":
{
"psr-0":
{
"App\\": "app/"
}
}
然而它仍然显示为(!)致命错误:Class' App \ Index'在第34行的C:\ wamp \ www \ project \ public_html \ index.php中找不到
第34行:
new \App\Index();
如果重要的话,使用Slimframework也无法想出错误
答案 0 :(得分:2)
由于您使用的是PSR-0标准,因此PHP正在寻找不存在的文件app/App/Index.php
。请注意,在PSR-0中,您可以定义基本目录(在您的情况下为app
),其中可以找到映射的命名空间(App
)。但是,该基本目录中的文件结构应与完全限定的类名完全匹配。因此,类App\FooBar
应位于文件app/App/FooBar.php
中。请注意,app
是基本目录,App
是包含该命名空间的所有子目录和PHP文件的目录。
由于您的应用程序不是这种情况(并且因为PSR-0已被弃用),您应该(正如您已经做过的那样)使用新的自动加载标准PSR-4。在PSR-4中,您可以直接将某个名称空间映射到某个目录。在您的情况下,您已将App
命名空间映射到app
目录,因此如果您需要使用app/Index.php
类,PHP将打开App\Index
文件。