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
标签即可。
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
标签即可。