【问题标题】:Composer2 and PSR-4 deprecation notice [duplicate]Composer2 和 PSR-4 弃用通知 [重复]
【发布时间】:2023-04-03 00:28:01
【问题描述】:

我将很快更新到 composer 2,每次我执行 composer dump-autoload 或 composer update 我都会收到以下弃用通知;

Deprecation Notice: Class App\Http\Traits\CheckCabinetTrait located in ./app/Traits/CheckCabinetTrait.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201
Deprecation Notice: Class App\Http\Traits\FollowUpEntryTrait located in ./app/Traits/FollowUpEntryTrait.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201

我已经仔细检查了所有文件名和类名,它们都是匹配的,我不确定是什么问题或者我应该如何使它与 PSR-4 兼容

CheckCabinetTrait.php

trait CheckCabinetTrait {
    public function checkcabinetnote($value) {
        //function
    }
}

FollowUpEntryTrait.php

trait FollowUpEntryTrait {
    public function createfollowupentry($value) {
        //function
    }
}

我到底做错了什么,为什么我不断收到此弃用通知

【问题讨论】:

  • 当您将文件夹名称更改为 Trait 和命名空间时,它是如何工作的..?通常我认为制作一个 Trait 文件夹是一个错误,但它不应该是一个如此大的错误
  • @Svetoslav 我还没有更新到 Composer2,如果我更新了这些 Traits 将无法正常工作,我很担心,我使用 Laravel 命令创建了该文件夹,我不确定为什么它的名称会导致问题。
  • 请分享更多细节,比如这些特征的命名空间

标签: php laravel composer-php


【解决方案1】:

问题是您的课程App\Http\Traits\CheckCabinetTrait 位于./app/Traits/CheckCabinetTrait.php 而不是./app/Http/Traits/CheckCabinetTrait.php(注意Http 文件夹)。
尝试移动Http文件夹中的Traits文件夹以及里面文件的命名空间并运行composer dump
命名空间应与文件夹结构相对应
这应该可以解决您的警告

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2016-06-18
    • 2015-01-08
    • 2014-09-12
    • 1970-01-01
    • 2014-07-25
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多