http://www.ozon.ru/context/detail/id/5648968/ - из современных наиболее полезная и актуальная книга на руском. Главу 15 читать ненадо, сейчас используется Composer и https://packagist.org/ Главу 17 тоже ненадо читать, сейчас используется Git. фреймворк рекомендую начинать изучать именно Symfony2 (я на полном серьёзе), а потом уже, если жизнь припечёт - быстренько освоишься с любым другим.
Спасибо за рекоммендации. С этой книги и начал изучать ООП. Кстати, саму формулировку MVC я в книге пока не видел. Сейчас рассматриваю движок магазина opencart. До фреймворка, кажется, ещё не дорос, но о Symfony2 наслышан много хорошего. ))
сам по себе MVC это просто запрос выполняется только к "контроллеру", он в свою очередь вытаскивает данные из "модели", а затем эти даннеые отдаются шаблону (view), который и формирует вид для клиента. также надо иметь ввиду, что есть случаи, когда этот паттерн какбы не очень уместен, например при реализации REST API, да запрос идёт на контроллер, да контроллер работает с моделью, но ответ отдаётся в виде JSON, который какбы не вписывается в одеологию "view", но можно не заморачиваться особо )
> который какбы не вписывается в одеологию "view" Вполне себе вписывается. echo json_encode и будет view. Например, на одном проекте мы делали так - контроллер передавал во view данные, роутер передавал во view желаемый тип контента на основе расширения в запросе, view выбирал рендер: это мог быть или шаблонизатор, если просили html, или геренатор xml, или json_encode если просили .json - таким образом одна и та же страница могла быть запрошена и в json (например, для ajax) и в HTML (для прямых ссылок). Это и есть идеология MVC - контроллер дает чистые данные и в идеале вообще не знает как их используют, а view на основе своей логики преобразовывает эти данные в ту или иную текстовую строку.
тоже верно ) тут главное принцип ощутить... есть например запросы без "модели" ) например если нам нужно просто хтмл страничку вывести, то клиента обращается к котроллеру каких-то плоских статей, который выбирает какой шаблон отправить еще в Symfony2 там как-бы не совсем MVC, там программист сам решает, что у него будет "моделью", а вот Doctrine2 не совсем соответствует понятию "модель" т.к. оперирует 2-мя понятиями: "Сущность" и "Репозиторий", которые какбы приходится вызывать из контроллера... т.е. там больше получается EVC также надо иметь ввиду, что "запрос" может прийти хоть откуда! обычно это конечно клиентский запрос по HTTP, но "клиентом" может быть и другой "котроллер"! и даже из "вида" можно обратиться к "контроллеру", это уже называется HMVC "hierarhical-mvc"
Просто для расширения кругозора: тренд такой, что термин MVC уже не модно применять к вебу: пруф1: Симфони2 это не MVC фреймворк, пруф2: MVC разрабатывался для решения проблем, которые для веба нехарактерны.
всё верно например если контроллер вернёт: Код (Text): return new JsonResponse(array('status' => $status, 'message' => $message, 'errors' => $errors)); то это какбы и представление но оно какое-то своеобразное т.е. новичок нигде тут слова "view" не увидит, но в принципе да, клиент получает данные в "виде" JSON, которые отдал ему "контроллер".