ddv88
@ddv88
Binance Futures

Последовательное наследование классов в MVC паттерне?

Нездоровый перфекционизм не дает мне покоя.
Раньше нормально писал и особо не парился над красотой кода. Сейчас пытаюсь привести функции и доступность переменных к взаимосвязанному поведению. И возник вопрос а нормально ли вообще использовать "бесконечное" наследование? Кто что скажет по этому поводу?
Позалипал слегка в симфони и зенд и что то они картину не особо прояснили, даже скорее наоборот.

!Схематичный пример!:
// index.php
require_once($_SERVER['DOCUMENT_ROOT'] . '/inc/defines.php');
require_once(ROOT . 'autoload.class.php');
Load::Import(['controller', 'interface']);
$app = new Controller;
$app-> AppLoad();

// interface.class.php
interface Initialize{

}

// controller.class.php
class Controller extends Load implements Initialize{
private function AppLoad(){
AutoLoad::Import(['view', 'lib', 'sql', 'interface']);
// bla bla
}
}

// view.class.php
public $title;
public $content;

class View extends Controller{

}

// model.class.php
class Model extends View{

}

// sql.class.php
class Mysql extends Model {

}
// и т.д.
  • Вопрос задан
  • 907 просмотров
Пригласить эксперта
Ответы на вопрос 3
nazarpc
@nazarpc
Open Source enthusiast
class View extends Controller
Какое наследование? Это же разные вообще компоненты системы!
class Model extends View
Опять?
class Mysql extends Model
Вот тут уже всё окончательно сломано, я бы ещё понял, если бы было наоборот, но тут у вас совсем в никуда.

Наследование использовать нормально, но только не тогда, когда MySQL наследует модель, которая представление, которое контроллер, которое загрузчик.
Ответ написан
Комментировать
View наследовать то Controller`а?
а Model от View... вы хоть принципы MVC понимаете?
там то сказано наоборот...

по сути вопроса: я не заметил каких-либо проблем при длинной цепочке родителей
Ответ написан
Комментировать
mitaichik
@mitaichik
Вообще, советую почитать что-нить про паттерны, там все написанно - как разбивать классы, когда наследовать:
Если в общем - www.ozon.ru/context/detail/id/2457392
Касательно предметной логики - www.ozon.ru/context/detail/id/5497184

Но в вашем примере - согласен с коллегами - во определенно что-то путаете в самом MVC. Я кгода-то писал про MVC в контесте yii - думаю, вам полезно будет прочесть habrahabr.ru/post/211739
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы