esterio
Спасибо, что посмотрели сайт)
На каптче у меня там стоит рендомная генерация от 5 до 10 символов, уменьшил до 5-7)
Проект писался в учебных целях, и на этапе написания я использовал разные стили, шаблоны, пробовал разные методы и подходы написания кода, так что там действительно каша на первый взгляд.
Я вполне знаком с MVC, и даже за время моего самообучения у меня сложилась вполне нормальная картинка(ну для меня), как оно должно работать. На первых порах, я не мог понять что же нужно засовывать в контроллер, а что в модель, читал на форумах об этом, одни говорили, что должна быть толстая модель, а контроллер как обертка к ней, другие что должен быть толстый контроллер, а модель чисто дергать данные из базы.
Я пришел к такому пониманию, как оно должно быть устроено...
Контроллер должен отвечать за логику, в какой последовательности, и что зачем идет.
Модель - это как разные детали, винтики, гаечки, болтики, шестеренки, - которые контроллер складывает в нужном порядке. Модель также дергает данные из еще одного подключенного класса, который выступает в роли обертки над базой/базами данных, то есть модели совсем не обязательно знать откуда эти данные берутся, она как бы говорит выбери но мне вот эти данные, вот с такими вот параметрами, а откуда и как дергать разбирается уже класс для работы с базой.
вью - само собой отображение данных
Мне вот понравилось еще концепция разделение свойств и методов, как реализовано в symfony2 в doctrine, там создается еще один класс Entity - в котором хранятся чисто свойства и гетеры, сетеры к ним. Мне вот было удобно такое разделение.
Последние модули, которые я добавлял, работают в таком порядке: загружается контроллер к нему экстендится entitty со всеми свойствами, в контроллере загружаю модель, как самостоятельный объект, модель запускает объект или экстендит класс для работы с базой. Вью это просто файл php подключенный к index.php, в котом содержится html код, и запросы к контроллеру на получение нужных данных. Как то так.
Если взять мой проект в целом, то он работает примерно по такому же принципу как вы описали,
первый подключенный к index.php файл это как раз и есть ядро, там стартуется объект отвечающий за автоподключение классов, обработчик ошибок, собственно само ядро, выполнено как обертка над главным контроллером. Роутер я хотел написать, но так и не нашел времени, у меня даже есть там пустой класс с этим названием). Во всех модулях есть свои контроллеры и модели, может их содержимое не совсем соответствует названию, но это ввиду того что я много экспериментировал, сначало сувал все в контроллер потом все в модель, самый большой бардак в самых ранних классах, а переделывать их у меня сейчас нет ни времени ни желания, в последних написанных модулях, на мой взгляд царит порядок
(Отредактировано автором: 11 Февраля, 2016 - 02:34:11)