Php 在中找不到自动加载PSR-4命名空间接口
mycomposer.json文件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()
{
"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.');
}
}