Хочу изучить MVC в PHP, с чего начать? Какой фреймворк выбрать для проекта?

Собственно, два вопроса:



1) Хочу изучить MVC-подход в PHP, с чего начать, что почитать? (Желательно на русском для более быстрого восприятия)

2) Сейчас начинаю новый проект, думаю, что необходимо взять какой-либо фреймворк для облегчения разработки — а какой именно?



Гуру, подскажите, пожалуйста :)
  • Вопрос задан
  • 17515 просмотров
Пригласить эксперта
Ответы на вопрос 18
nikel303
@nikel303
Попробуйте Yii — компактный, перспективный фреймворк, есть русская документация и форум.
Ответ написан
@kirsan_vlz
Скорее всего вызову много возражений, но если вам позволяет время, для понимания MVC я бы посоветовал начать писать проект без фреймворка.
Объясню почему.
Когда я начинал разбираться с PHP, фреймворки почти не были развиты, тема не имела большой популярности. Да и уровень у меня был не тот, чтобы понять такую конструкцию. И, как и большинство начинающих программистов, я начал изобретать велосипеды. Сделал один сайт. При расширении оказалось, что некоторые места расширять категорически неудобно. Подумал, посмотрел исходники других проектов (тогда это был форум IPB 2), какие-то архитектурные решения позаимствовал, но без понимания их сути. Потом впервые услышал про фреймворки, увидел, что какие-то готовые части моего кода можно оформить и выделить в свою собственную платформу. Тогда я уже примерно понимал ООП, начал читать паттерны большой четвёрки. По ходу разработки часто наступал на грабли, переписывал целые подсистемы, какие-то моменты смотрел в существующих фреймворках, с каждой ошибкой приходило понимание того, почему в серьёзных платформах сделано «так, а не иначе». Со временем дошёл до того момента, когда мой «фреймворк» нужно было перепроектировать с нуля и тогда бы он стал очень удобным, очень расширяемым и вообще… И на этапе проектирования пришло понимание, что всё это уже написано до меня и мне писать ничего смысла уже нет. Только к этому моменту я прекрасно понимал, именно понимал, а не знал, многие приёмы, используемые в MVC-фреймворках. А так как общая суть у них похожа, то сроки изучения новых фреймворков значительно сократились за счёт понимания принципов их работы. Многие моменты понятны просто по исходникам и примерам использования, без документации.
Да, это займёт много времени, но зато не будет проблем со сменой фреймворка. Да даже и языка. Своё первое приложение на Rails после знакомства с ним (до этого с ruby вообще дела не имел) я написал за три дня начиная с «как установить Ruby». Это был интерфейс inbox-почтового ящика с кучей аякса и всяческими плюшками вроде поиска, фильтров и прочего.
Так что, если конечно же позволяет время и есть желание, рекомендую либо попробовать написать свой велосипед, либо до полного понимания разобрать какой-либо готовый фреймворк, тут уже не важно какой.
Ответ написан
casey
@casey
Zend Framework — громоздкий, большой, медленный — но как пример постоения ООП систем — отлично подойдет. Куча примеров, огромное комьюнити.
Ответ написан
Vertex
@Vertex
www.symfony-project.org/ — ашшо один перспективный фреймворк… брейнфак немного вначале, но нормально… )
Ответ написан
slang
@slang
Я бы посоветовал однозначно Zend как швейцарский нож, которым можно вырезать любую нужную деталь достойного качества, но! Но наскоком разобраться будет не совсем просто, поэтому стоит начать с кухонного ножа, простейших легковесных аналогов типа CodeIgniter (хорошая дока, понятная структура, лёгкий переход с него на Zend). А что касается MVC, так это тренд, и реализована она практически во всех современных фреймворках.
Ответ написан
rapida
@rapida
Ответ написан
Комментировать
MyraJKee
@MyraJKee
cakephp для мелких проектов. Не самый шустрый конечно, но на мой взгляд неплохо реализована MVC, клон руби…
Документация отличная, есть на русском.
Очень много всего реализовано, в общем рекомендую.

cakephp на хабре, гугл группа

Так же стоит посмотреть на kohana

Yii и Zend уже рекомендовали…
Ответ написан
@rsi
software engineer
Тут уже все посоветовали, но внесу свои 5 копеек. Сам пишу буквально первый проект с использованием framework пробовал symfony, yii и zend и вот сугубо мое мнение:
Zend — пришлось пораскинуть мозгами что бы установить, настроить zend_tools и подключить все это к netbeans. Перечитал кучу форумов, что бы реализовать правильную аутентификацию и авторизацию (примеров в интернете полно, но они либо неактуальной версии либо не полные), дальше пошло легче но все равно часто приходиться обращаться к форумам и документации.

Yii — довольно просто установился, очень просто создал проект, имеет свой собственный генератор когда, но это мне в нем и не понравилось, вместо освоения с нуля приходилось разбираться в уже написанном не понятном мне коде, хотя есть неплохая документация на русском

Symfony — тоже просто установился, проект создался не с первого раза но не сложно, с ходу подключил к netbeans хорошая документация, в том числе и на русском, понравилась встроенная orm доктрина, но потом возникли сложности с примерами из документации (возможно из за моих кривых рук) и я бросил изучение.

В итоге пишу на zend (возможно потому что попробовал его первым) продвинулся достаточно далеко, из за того, что почти весь код пишу сам хорошо его понимаю.
Ответ написан
Комментировать
calg0n
@calg0n
Я бы посоветовал вам сначала разобраться что такое вообще ООП и с чем его едят, а потом уже бросаться на различные MVC-фреймворки. Очень хорошая книга есть на русском: PHP 5 для профессионалов. В ней много чего собрано (и про MVC в том числе).
Тут более важно понимание именно ООП и как его готовить, нежели MVC. MVC — это всего лишь способ (концепция) разделения логики и не более. Изучив ООП от сих и до сих, будете потом щелкать фреймы как орехи, и ответ на вопрос «Какой фреймворк выбрать для проекта?» не заставит долго ждать.
Ну а я начинал с CI, потом немного Кейка, ZF, ну и остановился на Yii.
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
Просто посмотри сюда
martinfowler.com/eaaCatalog/modelViewController.html
ещё картинка там же ссылка на описание всех запчасток системы.
www.corej2eepatterns.com/catalog.
затем лучше поковырать Zend Framework и начать программировать на Symfony.
Но пока не прочел умную литературу лучше *не лезь* в php MVC фреймворки, говорю тебе как php-шник со стажем.
Ответ написан
Комментировать
@chekhovrussia
И никто не посоветовал Laravel?
Ответ написан
Комментировать
MniD
@MniD
Да прибудет ХОЛИВАР!

Я начинал с ZF — классная штука, куча возможностей, огромное сообщество, но сука медленный…
Сейчас перебрался на Yii — маленький, удобный, разные удобные навороты… а один ActiveRecord чего стоит, ммм… в общем советую именно его…

КакаРНР (CakePHP) — медленный, не удобный, устаревший фрэймворк… но это сугубо моё личное мнение…
Ответ написан
kashey
@kashey
Программирую большую половину жизни
Порекомендовал бы посмотреть на Кохану как второй, так и третьей версии(кардинально отличаются)
А вообще библиотеки там разные и фреймворки задают вам порядок дейсвий придуманных( и продуманных) другими людьми.
Это не верный подход. Перепробуйте пару фреймворков, попробуйте их раздербанить, хакнуть и написать свое.
В конце вас ждет просветление, сознательный выбор фрейворка и глубокое понимание как это работает.
Последнее очень пригодиться.

Я вот очень люблю объектно-ориентированные шаблоны.
Но они сносят моск другим програмерам. Поэтому я люблю их исключительно дома: )
Ответ написан
icegreenberry
@icegreenberry
Мы использовали в своих проектах Yii, ZendFramework, Symfony. Остановились на последнем, поскольку: генератор админки, много плагинов.
Из личных впечатлений:
Zend очень большой, неудобная работа с формами. Но в нем много своих плюсов — компонентная структура позволяет использовать только необходимое, даже в других проектах — подключая классы Zend. Также из плюсов стоит отметить архитектуру, стиль кода, мощную поисковую систему Lucene.

Yii шустрый, понятный. Шустрый благодаря lazy loading, понятный благодаря автору и простоте архитектуры :) В последнее время появилось очень много новых плагинов, развивается wiki. Русскоязычное сообщество развивается (благодаря samdark.habrahabr.ru/). Лично мне пока что Yii нравится больше всего.

Symfony тоже большой, но бегает быстрее Zend. Много классных плагинов, хорошее руководство (в том числе и на русском). Хорошее коммьюнити и талантливый автор (Fabien Potencier). Готовят к выпуску Symfony2 — полностью переделанный Symfony. Symfony2, я думаю, будет прорывом в мире PHP-фреймворков (во многом также благодаря новым возможностям PHP 5.3). Из коробки работает Doctrine ORM, котрую при желании можно легко прикрутить к любому фреймворку, но все же. Генератор админки — по сути обычный CRUD, но благодаря файлам настроек — очень легко переделывается под свои нуждны. Кроме того лично мне удобнее YAML-way — настройка всего через *.yml файлы.

Как-то так.
Ответ написан
@nstorm
По мне конечно первый комментарий дает самый дельный совет, я тоже всегда изобретаю велосипед, когда хочу что-то понять. Но если именно брать фреймворк то для изучения CI самый простой и понятный на мой взгляд, с хорошей документацией логичной
Ответ написан
Комментировать
wbvetal
@wbvetal
Здесь очень хорошо описана суть дела!!!

http://habrahabr.ru/post/150267/
Ответ написан
Комментировать
xolnimda
@xolnimda
Хорошее видео по MVC mvcphp.ru
Ответ написан
Комментировать
Roma-Pro
@Roma-Pro
Веб-разработчик
Есть специальный плагин, который добавляет в Wordpress простой и при этом мощный MVC-функционал Wordpress MVC

Да, Wordpress очень популярна. Там много готовых решений (плагины, темы). Однако разрабатывать не стандартный функционал очень не удобно. Постоянно приходится вручную писать самые банальные вещи, вроде html-код форм, обработку форм и т.д.

Данный плагин как раз для того, чтобы избавиться от подобной рутины. И разрабатывать на Wordpress быстро, удобно. И при этом иметь все преимущества этой самой популярной cms.

Посмотрите, там по ссылке есть небольшой обзор. А еще там пошаговые инструкции с видео-примерами на русском, так что сможете легко разобраться :)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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