我正在尝试创建一个MVC结构并使用composer来自动加载所有内容 但我一直收到这个错误:
致命错误:未捕获错误:第5行的C:\ wamp64 \ www \ activity \ Public \ index.php中找不到类'App \ Init'
|MainFolder
|App
|Public
|Vendor
|ACT
|composer
|autoload.php
|composer.json
{
"name": "vendor/activity",
"description": "descrip",
"require": {
"php": ">=5.6.25"
},
"authors":[
{
"name": "John Doe",
"email": "johndoe@gmail.com"
}
],
"autoload":{
"psr-4": {
"ACT\\": "vendor/",
"App\\": "/"
}
},
"config":{
"bin-dir": "bin"
}
}
<?php
namespace App;
class Init
{
public function __construct()
{
echo "Loaded!!";
}
}
<?php
require_once '../vendor/autoload.php';
$init = new \App\Init;
<?php
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
"ACT" => array($vendorDir . false),
"App" => array($baseDir . '/'),
);
Obs:已经composer dump-autoload
答案 0 :(得分:3)
/vendor
。/vendor
中引用autoload
,这些软件包应该都有自己的全功能自动加载器,作曲家会找到并使用它们。
"autoload":{
"psr-4": {
"App\\": "App/"
}
},
想想它就像告诉作曲家“在下面的文件夹中查找以名称空间foo\bar\
开头的内容”。
注意:文件夹名称不必与命名空间匹配。
例如:遵循建议的PSR / Composer Vendor\Package\
方案
{
"autoload": {
"psr-4": {
"sammitch\\meatstacker\\": "src/"
}
}
}
然后:
\sammitch\meatstacker\Client
映射到src/Client.php
\sammitch\meatstacker\Bread\Rye
映射到src/Bread/Rye.php