Проблема при попытке реализовать один и тот же интерфейс для двух разных классов - PullRequest
0 голосов
/ 26 декабря 2018

Речь идет о PHP Laravel 5.7

Ниже представлен интерфейс и расширяющий класс, присутствующий в системе администрирования.Пока все в порядке в системе администрирования.

Мой интерфейс подобен приведенному ниже.

namespace Management\ForgotPassword;

interface IForgotPassword {
    public function GetUserByUserName($userObject);
}

Расширение класса на стороне администратора системы ниже

namespace Management\ForgotPassword;

use Management\IForgotPassword;

class ForgotPasswordDb implements IForgotPassword {

    public function GetUserByUserName($userObject) {

    }
}

Наконец, используя интерфейс в контроллере на стороне администратора, как показано ниже.

use Management\IForgotPassword;

class ForgotPasswordAPIController extends Controller
{
    private $ForgotPassword;

    public function __construct(IForgotPassword $ForgotPassword)
    {
        $this->ForgotPassword = $ForgotPassword;
    }

    public function ForgotPassword(ForgotPasswordRequest $request)
    {
        $user = [
            'email'     =>  $request["email"],
            'Is_Active' =>  1,
        ];

        $ForgotPasswordResponse = $this->ForgotPassword->GetUserByUserName($user);        
    }
}

Проблема в том, когда я начал реализовывать тот же интерфейс на стороне конечного пользователя.У меня совершенно другой контроллер для конечного пользователя и совершенно другой класс для конечного пользователя, как показано ниже.

Расширение класса на стороне администратора системы ниже

namespace Management\ForgotPassword;

use Management\IForgotPassword;

class ForgotPasswordEndUserDb implements IForgotPassword {

    public function GetUserByUserName($userObject) {

    }
}

В чем проблема?Когда я пишу ниже контроллер, я не могу понять, как тот же контроллер будет указывать на класс ForgotPasswordEndUserDb?Это вообще возможно?

use Management\IForgotPassword;

class ForgotPasswordEndUserAPIController extends Controller
{
    private $ForgotPassword;

    public function __construct(IForgotPassword $ForgotPassword)
    {
        $this->ForgotPassword = $ForgotPassword;
    }

    public function ForgotPassword(ForgotPasswordRequest $request)
    {
        $user = [
            'email'     =>  $request["email"],
            'Is_Active' =>  1,
        ];

        $ForgotPasswordResponse = $this->ForgotPassword->GetUserByUserName($user);        
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...