Php 在中找不到自动加载PSR-4命名空间接口

Php 在中找不到自动加载PSR-4命名空间接口,php,namespaces,composer-php,Php,Namespaces,Composer Php,mycomposer.json文件 { "autoload": { "psr-4": { "Acme\\": "src" } } } 该接口位于C:\xampp\htdocs\bootcamp\src\respondstouserregistration.php上 namespace Acme; Interface Responds { public function userRegisteredSuccessfuly()

mycomposer.json文件

{ 
       "autoload": {

       "psr-4": {
        "Acme\\": "src"
    }
}
}
该接口位于C:\xampp\htdocs\bootcamp\src\respondstouserregistration.php上

namespace Acme;

Interface Responds
{   
    public function userRegisteredSuccessfuly();

    public function userRegisteredunSuccessfuly();  
}

PSR-4自动加载假定您的类名与文件名匹配。因此,您的
接口responses
应该位于
responses.php
文件中,而不是
respondstouserregistration.php
文件中。重命名文件,或将界面重命名为
interface Respondstouserregistration

<?php 
namespace Acme;

class RegisterUser
{
    public function execute(array $data, Responds $listener) //data 
    {
        var_dump('registering the user.');
        $listener->userRegisteredSuccessfuly();
    }
}
<?php 
namespace Acme;

class AuthController implements Responds
{
    protected $registration;

    public function __construct(RegisterUser $registration)
    {
        $this->registration = $registration;
    }

    public function register()
    {
        $this->registration->execute([], $this);
    }

    public function userRegisteredSuccessfuly()
    {
        var_dump('created successfuly. redirect somewhere.');
    }


    public function userRegisteredunSuccessfuly()
    {
        var_dump('created unsuccessfuly. redirect back.');
    }

}