Правильно ли расширить пользовательский контроллер в другом пользовательском контроллере в MVC?

Я нахожусь в ситуации, когда я думаю о расширении пользовательского контроллера для устранения репликации кода, но я не уверен, может ли это нарушить какое-то правило MVC и является ли это хорошей практикой. Для иллюстрации ниже приведен пример кода.

class MyController extends CoreController {

public function myMethod() {
echo 'Hello world!';
}
}

class OtherController extends MyController {

public function otherMethod() {
echo 'Hello life';
}
}

0

Решение

Я решил использовать Черты PHP, таким образом, я могу иметь горизонтальное наследование, исключая репликацию кода, и я думаю, что я следую принципам MVC.

trait Shared {

public function sharedMethod() {
echo 'Hello, i am sharedMethod()!';
}
}

class MyController extends CoreController {

use Shared;

public function myMethod() {
echo 'Hello, i am myMethod()!';
}
}

class OtherController extends CoreController {

use Shared;

public function otherMethod() {
echo 'Hello, i am otherMethod()!';
}
}

$MyController = new MyController();
$MyController->sharedMethod(); // Hello, i am sharedMethod()!

$OtherController = new OtherController();
$OtherController->sharedMethod(); // Hello, i am sharedMethod()!
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]