Речь идет о 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);
}
}