Сведения о вопросе

Oleksandr

12:14, 3rd August, 2020

Теги

PHP    

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

Просмотров: 330   Ответов: 18

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



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

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



Гуру, подскажите, пожалуйста :)



  Сведения об ответе

KOMP

00:03, 24th August, 2020

Попробуйте Yii — компактный, перспективный фреймворк, есть русская документация и форум.


  Сведения об ответе

lool

18:14, 25th August, 2020

Скорее всего вызову много возражений, но если вам позволяет время, для понимания MVC я бы посоветовал начать писать проект без фреймворка.
Объясню почему.
Когда я начинал разбираться с PHP, фреймворки почти не были развиты, тема не имела большой популярности. Да и уровень у меня был не тот, чтобы понять такую конструкцию. И, как и большинство начинающих программистов, я начал изобретать велосипеды. Сделал один сайт. При расширении оказалось, что некоторые места расширять категорически неудобно. Подумал, посмотрел исходники других проектов (тогда это был форум IPB 2), какие-то архитектурные решения позаимствовал, но без понимания их сути. Потом впервые услышал про фреймворки, увидел, что какие-то готовые части моего кода можно оформить и выделить в свою собственную платформу. Тогда я уже примерно понимал ООП, начал читать паттерны большой четвёрки. По ходу разработки часто наступал на грабли, переписывал целые подсистемы, какие-то моменты смотрел в существующих фреймворках, с каждой ошибкой приходило понимание того, почему в серьёзных платформах сделано «так, а не иначе». Со временем дошёл до того момента, когда мой «фреймворк» нужно было перепроектировать с нуля и тогда бы он стал очень удобным, очень расширяемым и вообще… И на этапе проектирования пришло понимание, что всё это уже написано до меня и мне писать ничего смысла уже нет. Только к этому моменту я прекрасно понимал, именно понимал, а не знал, многие приёмы, используемые в MVC-фреймворках. А так как общая суть у них похожа, то сроки изучения новых фреймворков значительно сократились за счёт понимания принципов их работы. Многие моменты понятны просто по исходникам и примерам использования, без документации.
Да, это займёт много времени, но зато не будет проблем со сменой фреймворка. Да даже и языка. Своё первое приложение на Rails после знакомства с ним (до этого с ruby вообще дела не имел) я написал за три дня начиная с «как установить Ruby». Это был интерфейс inbox-почтового ящика с кучей аякса и всяческими плюшками вроде поиска, фильтров и прочего.
Так что, если конечно же позволяет время и есть желание, рекомендую либо попробовать написать свой велосипед, либо до полного понимания разобрать какой-либо готовый фреймворк, тут уже не важно какой.


  Сведения об ответе

#hash

12:42, 21st August, 2020

Zend Framework — громоздкий, большой, медленный — но как пример постоения ООП систем — отлично подойдет. Куча примеров, огромное комьюнити.


  Сведения об ответе

pumpa

12:00, 10th August, 2020

www.symfony-project.org/ — ашшо один перспективный фреймворк… брейнфак немного вначале, но нормально… )


  Сведения об ответе

DINO

17:47, 28th August, 2020

Я бы посоветовал однозначно Zend как швейцарский нож, которым можно вырезать любую нужную деталь достойного качества, но! Но наскоком разобраться будет не совсем просто, поэтому стоит начать с кухонного ножа, простейших легковесных аналогов типа CodeIgniter (хорошая дока, понятная структура, лёгкий переход с него на Zend). А что касается MVC, так это тренд, и реализована она практически во всех современных фреймворках.


  Сведения об ответе

ЯЯ__4

14:49, 16th August, 2020

  Сведения об ответе

piter

17:30, 16th August, 2020

cakephp для мелких проектов. Не самый шустрый конечно, но на мой взгляд неплохо реализована MVC, клон руби…
Документация отличная, есть на русском.
Очень много всего реализовано, в общем рекомендую.

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

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

Yii и Zend уже рекомендовали…


  Сведения об ответе

crush

18:32, 28th August, 2020

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

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

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

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


  Сведения об ответе

crush

22:38, 13th August, 2020

Я бы посоветовал вам сначала разобраться что такое вообще ООП и с чем его едят, а потом уже бросаться на различные MVC-фреймворки. Очень хорошая книга есть на русском: PHP 5 для профессионалов. В ней много чего собрано (и про MVC в том числе).
Тут более важно понимание именно ООП и как его готовить, нежели MVC. MVC — это всего лишь способ (концепция) разделения логики и не более. Изучив ООП от сих и до сих, будете потом щелкать фреймы как орехи, и ответ на вопрос «Какой фреймворк выбрать для проекта?» не заставит долго ждать.
Ну а я начинал с CI, потом немного Кейка, ZF, ну и остановился на Yii.


  Сведения об ответе

davran

02:16, 17th August, 2020

Просто посмотри сюда
martinfowler.com/eaaCatalog/modelViewController.html
ещё картинка там же ссылка на описание всех запчасток системы.
www.corej2eepatterns.com/catalog.
затем лучше поковырать Zend Framework и начать программировать на Symfony.
Но пока не прочел умную литературу лучше *не лезь* в php MVC фреймворки, говорю тебе как php-шник со стажем.


  Сведения об ответе

dumai

16:00, 3rd August, 2020

И никто не посоветовал Laravel?


  Сведения об ответе

pumpa

10:27, 24th August, 2020

Да прибудет ХОЛИВАР!

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

КакаРНР (CakePHP) — медленный, не удобный, устаревший фрэймворк… но это сугубо моё личное мнение…


  Сведения об ответе

PAGE

08:40, 28th August, 2020

Порекомендовал бы посмотреть на Кохану как второй, так и третьей версии(кардинально отличаются)
А вообще библиотеки там разные и фреймворки задают вам порядок дейсвий придуманных( и продуманных) другими людьми.
Это не верный подход. Перепробуйте пару фреймворков, попробуйте их раздербанить, хакнуть и написать свое.
В конце вас ждет просветление, сознательный выбор фрейворка и глубокое понимание как это работает.
Последнее очень пригодиться.

Я вот очень люблю объектно-ориентированные шаблоны.
Но они сносят моск другим програмерам. Поэтому я люблю их исключительно дома: )


  Сведения об ответе

VERSUION

00:02, 13th August, 2020

Мы использовали в своих проектах 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 файлы.

Как-то так.


  Сведения об ответе

Chhiki

09:09, 23rd August, 2020

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


  Сведения об ответе

padenie

12:08, 4th August, 2020

Здесь очень хорошо описана суть дела!!!

http://habrahabr.ru/post/150267/


  Сведения об ответе

baggs

07:32, 13th August, 2020

Хорошее видео по MVC mvcphp.ru


  Сведения об ответе

lourence

18:30, 7th August, 2020

Есть специальный плагин, который добавляет в Wordpress простой и при этом мощный MVC-функционал Wordpress MVC

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться