简体   繁体   中英

Composer PSR-4 Autoload Interface Deprecation Notice

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

<?php

namespace App\Interfaces;

use Illuminate\View\View;

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

When I composer dump-autoload i receive the following notice

Deprecation Notice: Class App\Interfaces\renderData 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 autoload part:

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

Folder structure is:

<root_project>
 app
 Console
 ...

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

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 'App\Interfaces'.

Make sure the folder structure and naming matches namespace.

This is the main reason for composer 's latest version.

Check your composer version using

composer -V

Install another version using

composer self-update 1.6.3

and delete the vendor folder from your project.

And use the following commands:

composer install
composer update
composer dump-autoload

Hope it will work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM