【问题标题】:slim 3 middleware & psr-4 composer autoloader: class not foundslim 3 中间件和 psr-4 作曲家自动加载器:找不到类
【发布时间】:2017-05-16 20:51:23
【问题描述】:

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(

这会导致

找不到类“App\Auth\RequestMethodPathRule”。

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

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

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

【问题讨论】:

  • config.json,你确定这是文件名吗?
  • 表示 composer.json。我会编辑谢谢。
  • 等等,你忘记<?php标签了吗?
  • @Federkun 是的,关闭,你明白了!哦,损失了多少小时。谢谢。

标签: php composer-php slim autoloader psr-4


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-01-02
    • 2019-01-31
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2016-03-31
    • 2017-01-27
    • 2016-01-17
    相关资源
    最近更新 更多