slim 3 中间件和 psr-4 作曲家自动加载器:class 未找到

slim 3 middleware & psr-4 composer autoloader: class not found

composer.json:

"autoload": {
    "psr-4": {
        "App\": "src/"
    }
},

src/Auth/RequestMethodPathRule.php:

namespace App\Auth;
class RequestMethodPathRule implements  \Slim\Middleware\HttpBasicAuthentication\RuleInterface 
{ 
...

src/middleware.php

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "rules" => [new App\Auth\RequestMethodPathRule(

这导致

Class 'App\Auth\RequestMethodPathRule' not found.

在文件 middleware.php 中包含 RequestMethodPathRule.php 中的所有代码工作正常。

更奇怪的是,随着500错误,浏览器显示了RequestMethodPathRule.php!

的源代码

编辑: 天哪,我在 class 文件 (<? instead of <?php) 上有一个短标签,所以 php 将其视为文本。习惯很难戒掉。

More strangely, along with the 500 error, the browser displays the source code of RequestMethodPathRule.php!

这意味着 composer 正确地包含了文件,但是没有找到 class,因为 php 没有解释代码。在这种情况下,由于通常不启用短标签,您只需将它们替换为 <?php 标签即可。