当前位置: 首页 > 知识库问答 >
问题:

类不符合psr-4自动加载标准。跳过[重复]

黎震博
2023-03-14

原始关闭原因未解决

我尝试使用作曲家自动加载,但我得到了这个错误

composer.json

{
    "autoload":{
        "psr-4":{
            "App\\":"app/"
        },
        "files": ["app/functions/helper.php"]
    },
    "require": {
        "vlucas/phpdotenv": "^2.4",
        "altorouter/altorouter": "^1.2",
        "philo/laravel-blade": "^3.1"
    },
    "config":{
        "optimize-autoloader":true
    }
}

我的终端输出

Generating optimized autoload files
Class App\Controllers\BaseController located in D:/php/Xamp/htdocs/MVC_PHP/app\controllers\BaseController.php does not comply with psr-4 autoloading standard. Skipping.
Class App\Controllers\IndexControllers located in D:/php/Xamp/htdocs/MVC_PHP/app\controllers\IndexControllers.php does not comply with psr-4 autoloading standard. Skipping.
Class App\RoutingDispatcher located in D:/php/Xamp/htdocs/MVC_PHP/app\routing\RoutingDispatcher.php does not comply with psr-4 autoloading standard. Skipping.
Generated optimized autoload files containing 508 classes

共有1个答案

赵光赫
2023-03-14

PSR-4标准要求文件和目录区分大小写,相应的类和名称空间在PascalCase中。

对于App\Controllers\BaseController类,文件应位于:

app/Controllers/BaseController.php

注意大写C

第二个错误:对于顶级命名空间之后的任何命名空间,必须有一个同名的目录。
您有一个App\RoutingDispatcher类,该类应放置为App/RoutingDispatcher.php,但App/routing/RoutingDispatcher.php文件将对应于一个App\routing\RoutingDispatcher类。
您必须更改该类的命名空间或移动文件。

如果更改其名称空间,请确保使用前导大写字母重命名app/routing目录。

 类似资料:
  • 试图在新创建的Laravel项目中要求CrestApps,给我以下msg:位于C:/xampp/htdocs/cn/供应商/crestapps/laravel-code-Generer/src\数据库解析\SqlServerParser.php中的类CrestApps\CodeGenerator\数据库解析\SqlServerP不符合psr-4自动加载标准。跳过。 作曲家版本2.0.7 Crest

  • 运行composer的,,,等时。;我突然收到一张黄色的反对通知,上面写着: 位于./Foo/Bar/utility/Baz.php中的类Foo\Bar\Baz不符合psr-4自动加载标准。跳过 在Composer 2.0之前,人们习惯于获得: 弃用通知:位于./Foo/Bar/Baz.php中的类Foo\Bar\Baz不符合psr-4自动加载标准。它将不再在Composer v2.0中自动加载。

  • 我和许多其他人一样,似乎很难弄清楚何时以及如何使用自动加载。我想我理解作曲家和PSR-0/PSR-4的概念和这需要的目录结构。但是如果我用自己的MVC框架构建自己的项目 > 由于composer自带了自动加载器,它将加载我希望包含在项目中的所有依赖项,如果我不打算将我的网站变成分布式项目,我甚至需要自己的名称空间吗?为什么我不坚持使用include/requires? 最后,如果我采用名称空间,使

  • 不得不提到的 PSR-0规范 PSR-0是什么鬼? 在PHP 5.2及之前的限制下,PSR-0类命名和自动加载标准在Horde / PEAR公约的广泛接受之后被大量使用。 根据该约定,趋势是将所有PHP源类放在单个主目录中,使用类名中的下划线来指示伪命名空间,如下所示: /path/to/src/ VendorFoo/ Bar/ Baz.php

  • 我有一个在本地运行良好的Laravel项目(Mavericks),但是psr-4下的类没有加载到我们的后台服务器(CentOS)上。每次尝试composer更新或运行artisan命令时,我都会收到一个反射“未找到类”错误。 我的所有特定于应用程序的类都存储在我的Laravel项目的app/heatherland下,例如: 我的composer.json包含以下条目: 在本地,psr-4类被添加到

  • 1. 概述 本 PSR 是关于由文件路径 自动载入 对应类的相关规范, 本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外, 本 PSR 还包括自动载入的类对应的文件存放路径规范。 关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST):绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT):禁令,严令禁止;