[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запутался в MVC
Страницы: 1, 2, 3, 4
McLotos
Цитата (chee @ 9.10.2015 - 15:18)
И мне не понятно, твое обострённое внимание к ним.

Просто если с View всё понятно - чистый html, с моделями тоже вроде как всё ясно - работа с информацией (например с БД), то вот реализация контроллера вообще не ясна, понятно только то что он не должен ничего сам делать а только раздавать команды, но в таком случае все контроллеры будут состоять только из конструктора и 1 метода, типа
MenuController extends Controller{
public function _construct($config, $request){
parent::__construct($config, $request);
$this->model = new menuModel();
$this->view = 'menu.tpl';
}

public function showMenu(){
$menu = $this->model->getMenu();
$this->view->assign('MENU', $menu);
}


}

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
chee
Invis1ble, эта картинка класического MVC, когда вьюхи слушают изменения модели, в JS фреймвоках она работает, на стороне сервера нет, точнее взоимодействие между MODEL и VIEW другое.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble
Цитата (chee @ 9.10.2015 - 13:30)
Invis1ble, эта картинка класического MVC, когда вьюхи слушают изменения модели, в JS фреймвоках она работает, на стороне сервера нет, точнее взоимодействие между MODEL и VIEW другое.

если ты про ту, которую я вставил в свой пост, то согласен, я уже её убрал, дабы не вносить путанницу
схема же twin'а вообще очень странная, я, кстати, специально погуглил и удивился, что даже на хабре она присутствует
(как он вообще MVC фреймворк собрался писать?)

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

McLotos
Invis1ble
Да, я тоже заметил что она странная, отписался чуть выше. И вообще странно чтобы TWIN вдруг решил писать фремворк. он же упорно против ООП

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
chee
Цитата (McLotos @ 9.10.2015 - 13:27)
Просто если с View всё понятно - чистый html

Да кто тебе это сказал, забудь и не используй как аксиому. View выбирает данные из модели и решает как их отобразить, и обычно использует для этого шаблонизатор. В твоей концепции View вообще не делает, когда как это один из самых важных элементов в MVC.

Цитата (McLotos @ 9.10.2015 - 13:27)
с моделями тоже вроде как всё ясно - работа с информацией (например с БД)

Тут не поспоришь. Модель работает не только с БД, но может и с вебсервисами, другими моделями и кучей технологий.

Цитата (McLotos @ 9.10.2015 - 13:27)
понятно только то что он не должен ничего сам делать а только раздавать команды, но в таком случае все контроллеры будут состоять только из конструктора и 1 метода, типа

В этом и смысл. Вот мои контроллеры.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble
Цитата (McLotos @ 9.10.2015 - 13:36)
Invis1ble
Да, я тоже заметил что она странная, отписался чуть выше. И вообще странно чтобы TWIN вдруг решил писать фремворк. он же упорно против ООП

это ХИТРЫЙ ПЛАН, он хочет, чтоб его бесплатно местные спецы подтянули biggrin.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

chee
Цитата (Invis1ble @ 9.10.2015 - 13:31)
(как он вообще MVC фреймворк собрался писать?)

А кто сказал, что он вообще собрался писать MVC фреймворк. Он конечно попытается, у него не получится, его все засрут (раскритикуют), он придумает под свое неудачное решение опровдание и назовет это "изюменкой". Так и будет, зуб твина даю laugh.gif

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
McLotos
Цитата (chee @ 9.10.2015 - 15:36)
В твоей концепции View вообще не делает, когда как это один из самых важных элементов в MVC.

Ну мой View ты вчера видел.
class View{
private $tpl;
private $skinBaseFile = 'base';

public function __construct($cfg, $request){
$userLang = (!$request->session('lang'))) ? $cfg->getConfig('defaultLang') : $request->session('lang');
require $cfg->getConfig('dirLangs') . $userLang . '.lang.php';

$this->tpl = new Template();
$this->tpl->ext = '.tpl'; //расширение для файлов шаблона
$this->tpl->htm = '.htm'; //раширение для файлов кэша
$this->tpl->skinDir = $cfg->getConfig('dirViews'); //директория с шаблонами
$this->tpl->skin = $cfg->getConfig('defaultSkin'); //имя шаблона
$this->tpl->cache = $cfg->getConfig('dirViews') . 'cache'; //директория куда должен сохраняться кэш страницы.
$this->tpl->lang = $cfg->getConfig('defaultLang'); //язык по умолчанию
$this->tpl->clearElements = $cfg->getConfig('clearElements'); //false - не удалять с шаблона те переменные, значения которых неизвестны
$this->tpl->saveCache = $cfg->getConfig('saveCache'); //false - не сохранять кэш
$this->tpl->useHF = $cfg->getConfig('useHF'); //false - не использовать header и footer как отдельные файлы. у нас базовый шаблон, всё встраиваем в него
$this->tpl->assign('LANG', $lang); //передаем в шаблон перевод некоторого текста на язвк пользователя
$head = array('CSS'=>$cfg->getConfig('mainPage') . $cfg->getConfig('dirViews') . $cfg->getConfig('defaultSkin') . '/style.css',
'JS'=>$cfg->getConfig('mainPage') . $cfg->getConfig('dirJS') . 'scripts.js');
$this->tpl->assign('HEAD', $head);
}

public function assign($key, $arr){
$this->tpl->assign($key, $arr);
}

public function generate(){
$this->tpl->buildPage($this->skinBaseFile);//передаем имя базового шаблона
}

}


_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.