Composer PSR-4 自动加载接口弃用通知

2022-01-21 00:00:00 php laravel composer-php phar

我无法理解这个简单的界面有什么问题.

I'm having trouble understanding what's wrong with this simple interface.

<?php

namespace AppInterfaces;

use IlluminateViewView;

interface renderData
{
        public function renderAsHtml(): View;
}

当我 composer dump-autoload 我收到以下通知

When I composer dump-autoload i receive the following notice

弃用通知:位于 ./app/Interfaces/RenderData.php 中的类 AppInterfacesenderData 不符合 psr-4 自动加载标准.在 Composer v2.0 中将不再自动加载.

Deprecation Notice: Class AppInterfacesenderData located in ./app/Interfaces/RenderData.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0.

composer.json 自动加载部分:

composer.json autoload part:

    "autoload": {
        "psr-4": {
            "App\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
     },

文件夹结构为:

<root_project>
 app
 Console
 ...

我已经尝试将 app 重命名为 App 然后 dump-autoload 但问题仍然存在.

I have already try to rename app to App then dump-autoload but the problem persist.

推荐答案

可能是app/Interfaces/RenderData'中'app'文件夹的首字母小写,而'应用接口".

It could be that first letter of ‘app’ folder is in small case in app/Interfaces/RenderData’, but in the namespace is in upper case in ‘AppInterfaces’.

确保文件夹结构和命名与命名空间匹配.

Make sure the folder structure and naming matches namespace.

相关文章