在MVC中,将用户控制器扩展到另一个用户控制器是否正确


Is it right extend an user controller in another user controller in MVC?

我正在考虑扩展用户控制器以消除代码复制,但我不确定这是否会破坏某些MVC规则,是否是一种好的做法。下面是一个代码示例。

class MyController extends CoreController {
    public function myMethod() {
        echo 'Hello world!';
    }
}
class OtherController extends MyController {
    public function otherMethod() {
        echo 'Hello life';
    }
}

我决定使用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()!