索引:<?php require '../application/bootstrap.php'; ?>
自举:
<?php
define("START", microtime(true));
define("ROOT", realpath(__DIR__.'/../'));
include '../vendor/autoload.php';
include ROOT . '/application/Library/Application.php';
App\Application::getClass('test')->test();
Composer.JSON:
"autoload": {
"psr-4": {
"App\\": "application/"
}
}
问题在于这一行:
include ROOT . '/application/Library/Application.php';
我不应该包括它,PSR-4应该为我做。这是我的Application类。
<?php
namespace App;
class Application
{
public static function getClass($library){} // removed body for minimal example
}
?>
这是我的文件结构:https://i.imgur.com/Gr1aaZG.png,供应商文件夹隐藏在我的IDE中,因为我在我的VSCode设置中配置它,尽管它在那里。
答案 0 :(得分:0)
您的PSR-4命名空间表示App
命名空间的ROOT位于文件夹application/
,但您的文件位于路径/application/Library/Application.php
。使用此配置,您可以将Application.php
移至/application/Application.php
,也可以将应用程序类的命名空间设置为App\Library
;
这应该可以解决你的问题。