Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Хочу изучить MVC в PHP, с чего начать? Какой фреймворк выбрать для проекта?
Просмотров: 330
 
Ответов: 18
Собственно, два вопроса:
1) Хочу изучить MVC-подход в PHP, с чего начать, что почитать? (Желательно на русском для более быстрого восприятия)
2) Сейчас начинаю новый проект, думаю, что необходимо взять какой-либо фреймворк для облегчения разработки — а какой именно?
Гуру, подскажите, пожалуйста :)
Скорее всего вызову много возражений, но если вам позволяет время, для понимания MVC я бы посоветовал начать писать проект без фреймворка.
Объясню почему.
Когда я начинал разбираться с PHP, фреймворки почти не были развиты, тема не имела большой популярности. Да и уровень у меня был не тот, чтобы понять такую конструкцию. И, как и большинство начинающих программистов, я начал изобретать велосипеды. Сделал один сайт. При расширении оказалось, что некоторые места расширять категорически неудобно. Подумал, посмотрел исходники других проектов (тогда это был форум IPB 2), какие-то архитектурные решения позаимствовал, но без понимания их сути. Потом впервые услышал про фреймворки, увидел, что какие-то готовые части моего кода можно оформить и выделить в свою собственную платформу. Тогда я уже примерно понимал ООП, начал читать паттерны большой четвёрки. По ходу разработки часто наступал на грабли, переписывал целые подсистемы, какие-то моменты смотрел в существующих фреймворках, с каждой ошибкой приходило понимание того, почему в серьёзных платформах сделано «так, а не иначе». Со временем дошёл до того момента, когда мой «фреймворк» нужно было перепроектировать с нуля и тогда бы он стал очень удобным, очень расширяемым и вообще… И на этапе проектирования пришло понимание, что всё это уже написано до меня и мне писать ничего смысла уже нет. Только к этому моменту я прекрасно понимал, именно понимал, а не знал, многие приёмы, используемые в MVC-фреймворках. А так как общая суть у них похожа, то сроки изучения новых фреймворков значительно сократились за счёт понимания принципов их работы. Многие моменты понятны просто по исходникам и примерам использования, без документации.
Да, это займёт много времени, но зато не будет проблем со сменой фреймворка. Да даже и языка. Своё первое приложение на Rails после знакомства с ним (до этого с ruby вообще дела не имел) я написал за три дня начиная с «как установить Ruby». Это был интерфейс inbox-почтового ящика с кучей аякса и всяческими плюшками вроде поиска, фильтров и прочего.
Так что, если конечно же позволяет время и есть желание, рекомендую либо попробовать написать свой велосипед, либо до полного понимания разобрать какой-либо готовый фреймворк, тут уже не важно какой.
www.symfony-project.org/ — ашшо один перспективный фреймворк… брейнфак немного вначале, но нормально… )
Я бы посоветовал однозначно Zend как швейцарский нож, которым можно вырезать любую нужную деталь достойного качества, но! Но наскоком разобраться будет не совсем просто, поэтому стоит начать с кухонного ножа, простейших легковесных аналогов типа CodeIgniter (хорошая дока, понятная структура, лёгкий переход с него на Zend). А что касается MVC, так это тренд, и реализована она практически во всех современных фреймворках.
cakephp для мелких проектов. Не самый шустрый конечно, но на мой взгляд неплохо реализована MVC, клон руби…
Документация отличная, есть на русском.
Очень много всего реализовано, в общем рекомендую.
cakephp на хабре, гугл группа
Так же стоит посмотреть на kohana
Yii и Zend уже рекомендовали…
Тут уже все посоветовали, но внесу свои 5 копеек. Сам пишу буквально первый проект с использованием framework пробовал symfony, yii и zend и вот сугубо мое мнение:
Zend — пришлось пораскинуть мозгами что бы установить, настроить zend_tools и подключить все это к netbeans. Перечитал кучу форумов, что бы реализовать правильную аутентификацию и авторизацию (примеров в интернете полно, но они либо неактуальной версии либо не полные), дальше пошло легче но все равно часто приходиться обращаться к форумам и документации.
Yii — довольно просто установился, очень просто создал проект, имеет свой собственный генератор когда, но это мне в нем и не понравилось, вместо освоения с нуля приходилось разбираться в уже написанном не понятном мне коде, хотя есть неплохая документация на русском
Symfony — тоже просто установился, проект создался не с первого раза но не сложно, с ходу подключил к netbeans хорошая документация, в том числе и на русском, понравилась встроенная orm доктрина, но потом возникли сложности с примерами из документации (возможно из за моих кривых рук) и я бросил изучение.
В итоге пишу на zend (возможно потому что попробовал его первым) продвинулся достаточно далеко, из за того, что почти весь код пишу сам хорошо его понимаю.
Я бы посоветовал вам сначала разобраться что такое вообще ООП и с чем его едят, а потом уже бросаться на различные MVC-фреймворки. Очень хорошая книга есть на русском: PHP 5 для профессионалов. В ней много чего собрано (и про MVC в том числе).
Тут более важно понимание именно ООП и как его готовить, нежели MVC. MVC — это всего лишь способ (концепция) разделения логики и не более. Изучив ООП от сих и до сих, будете потом щелкать фреймы как орехи, и ответ на вопрос «Какой фреймворк выбрать для проекта?» не заставит долго ждать.
Ну а я начинал с CI, потом немного Кейка, ZF, ну и остановился на Yii.
Просто посмотри сюда
martinfowler.com/eaaCatalog/modelViewController.html
ещё картинка там же ссылка на описание всех запчасток системы.
www.corej2eepatterns.com/catalog.
затем лучше поковырать Zend Framework и начать программировать на Symfony.
Но пока не прочел умную литературу лучше *не лезь* в php MVC фреймворки, говорю тебе как php-шник со стажем.
Да прибудет ХОЛИВАР!
Я начинал с ZF — классная штука, куча возможностей, огромное сообщество, но сука медленный…
Сейчас перебрался на Yii — маленький, удобный, разные удобные навороты… а один ActiveRecord чего стоит, ммм… в общем советую именно его…
КакаРНР (CakePHP) — медленный, не удобный, устаревший фрэймворк… но это сугубо моё личное мнение…
Порекомендовал бы посмотреть на Кохану как второй, так и третьей версии(кардинально отличаются)
А вообще библиотеки там разные и фреймворки задают вам порядок дейсвий придуманных( и продуманных) другими людьми.
Это не верный подход. Перепробуйте пару фреймворков, попробуйте их раздербанить, хакнуть и написать свое.
В конце вас ждет просветление, сознательный выбор фрейворка и глубокое понимание как это работает.
Последнее очень пригодиться.
Я вот очень люблю объектно-ориентированные шаблоны.
Но они сносят моск другим програмерам. Поэтому я люблю их исключительно дома: )
Мы использовали в своих проектах 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 файлы.
Как-то так.
Есть специальный плагин, который добавляет в Wordpress простой и при этом мощный MVC-функционал Wordpress MVC
Да, Wordpress очень популярна. Там много готовых решений (плагины, темы). Однако разрабатывать не стандартный функционал очень не удобно. Постоянно приходится вручную писать самые банальные вещи, вроде html-код форм, обработку форм и т.д.
Данный плагин как раз для того, чтобы избавиться от подобной рутины. И разрабатывать на Wordpress быстро, удобно. И при этом иметь все преимущества этой самой популярной cms.
Посмотрите, там по ссылке есть небольшой обзор. А еще там пошаговые инструкции с видео-примерами на русском, так что сможете легко разобраться :)
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться