Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здрасте! Заинтересовался вопросом какой фреймворк лучше? Но конечно существуют разные рейтинги, в которых все это рассматривается, но лучше всего какой-либо продукт знают люди которые с ним постоянно работают! Понимаю конечно, что большинство фреймворков реализуют одинаковый функционал, НО все же они чем то ведь отличаются?
По каким критериям хотелось бы сделать обзор:
Достоинства
Узкие места
Плюшки (например класс HTML облегчающий работу с DOM'ом и выводом как в Yii)
Чем лучше "коллег"
P.S. на самом деле по мотивам данного топика будет написана большая статья в которой комплексно будут рассмотрены различные CMS и фреймворки. Поэтому очень надеюсь на здоровую ДИСКУССИЮ (не полемику) по данному поводу!
Не в сети
Как то так случилось, что все на разных форумах задают одно и тоже, так что я пожалуй сделаю некие оговорки:
1. Я знаю что CMS и ворки сравнивать не совсем правильно. Мое мнение по этому поводу: "CMS - набор готовых модулей написанных на фреймворке".
2. Пишу статью на основании чужого мнения, потому что: рассматривать все фрейворки и CMS и затем расписывать свое мнение не совсем объективно. Сколько людей столько и мнений.
3. Параноиков прошу не беспокоиться, ссылки на топики я сделаю. Родина вас не забудет!
Не в сети
До знакомства и использования Laravel я поработал с разными фреймворками, yi1/2, sf2, silex, kohana 3, zend2, ci.
Начнем с Zend2. Самый медленный и сложный фреймворк, большой уровень абстракции, приходится писать много кода для елементарных вещей, скудная документация. Единственный плюс, пожалуй, огромная база компонентов которые можно использовать без самого фреймворка. мало где используется, почти нет проектов на фрилансе. Я бы сказал уровень не меньше enterprise, но symfony2 в любом случае лучше. Вроде будет 3 версия, посмотрим
Symfony2
Фреймворк так же довольно сложный и тяжелый, но в несколько раз быстрее Zend2, хорошая документация, многое описано, большое комьюнити, LTS версии, много готовых бандлов. Unit тесты, assetic, doctrine, twig и многое другое из коробки. Хорошой DI контейнер, один из лучших. При должном уровне знаний хороший и гибкий инструмент для разработки. На фрилансе проскакивают проекты с требованием Symfony2 в качестве фреймворка, но в основном его используют компании что подразумивает работу в офисе. Не подойдет новичкам, для сайтов визиток.
Silex
Микро фреймворк основанный на компонентах Symfony2, как по мне уже устарел в силу того что почти не обновляется. Если нужно быстро запилить маленький сайт то подойдет, но лучше использовать Lumen framework.
Yii1/2
Не вижу ничего выдающегося в этом фреймворке, довольно простой в освоении, большое комьюнити, есть готовые бандлы, во второй версии ничего кардинально не изменилось. Очень много плохого кода пишут программисты. Есть свой Di контейнер, ActiveRecord (вполне хороший) другие полезные компоненты, быстро работает. Хватает заказов на фрилансе. В принципе сносный фреймворк если руки есть.
Kohana / Ci
Про CI много говорить нечего, старый фреймворк, не идет в ногу со временем, никаких крутых фич там нету, только для проектов ранее на нем написанных.
Kohana это форк CI, сейчас официально закрыт. Для новичков самое оно, самый просто уровень абстракции, мало шаблонов проектирования, быстрый. Простой и понятный mvc, расширяемое ядро, каскадная файловая система (как по мне не самое лучшее решение). Свой ORM, QueryBuilder, кэш, библиотека для работы с изображениями, аутентификация и другое.
Перейдем к Laravel
Laravel зацепил меня простотой и в то же время своей гибкостью, приемлимым уровнем абстракции, большим количеством пакетов из коробки. Довольно простой в освоении, можно быстро сделать готовый сайт, отличный ActiveRecord, отличная работа с консолью. Хорошая документация, очень быстрый и потребляет мало памяти (У sf2 ~7mb с включенным кэшированием и opcache, ~3 у laravel при чистой установке, если нагрузить бандлами sf2 память взлетит до >15, у laravel примерно такое же количество бандлов выйдет ~8, при том что Laravel основан на компонентах sf2). 5.1 Является LTS версией с длительной поддержкой что окончательно заставило начать с ним работать. Из минусов мало заказов на фрилансе, да и в офисе не так много работы.
Lumen
Микрофреймворк основанный на компонентах laravel, вырезаны несколько библиотек, роутинг заменен на FastRoute (вместо sf2). Быстрее чем silex, новее.
Про CMS
Wordpress создавался для ведения блога, но сейчас на нем делают всевозможные сайты. Огромное количество бесплатных и платных плагинов, шаблонов. Самая большая доля на рынке, огромное количество работающих сайтов. Из минусов все сделано на $GLOBALS, малое количество ООП, в то же время очень гибкий и расширяемый движок. Бывают массовые взломы, но считается надежным.
Joomla можный инструмент для создания сайтов, много тем и плагинов, более хороший код, большое комьюнити, но мне никогда не нравилась. Большая часть сайтов сделана криво. Так же бывают массовые взломы, но считается надежным.
Drupal считается не совсем CMS а CMF - Content Management Framework. Много готовых возможностей для создания своих модулей, слышал очень гибкий. Сам с ним не работал, считаю его ресурсоемким. Сейчас в разработке 8 версия, которая так же основана на компонентах Symfony2, инструмент будет мощный но тяжелый.
Мой выбор Laravel, SF2, в самом крайнем случае yii2.
Изменено wendel (06.08.2015 03:18:10)
Не в сети
wendel, вам бы этот текст, да оформить в виде статьи и опубликовать на главной (https://laravel.ru/compose).
Не в сети
Proger_XP возможно еще поработаю над статьей, хотелось просто вкратце описать другие фреймворки с которыми работал.
Не в сети
wendel
Что скажете про fuelphp?
Есть еще фреймворк TYPO3 Flow. Он использует ORM Doctrine, компоненты Simfony. Подробнее здесь http://flow.typo3.org/about/features Что про него скажете?
Не в сети
Что нравится в Laravel:
1) Все что может пригодится в работе - включено в стандартный набор. От управления статикой (Elixir) до тестирования (PHPUnit). Не надо ничего дополнительно устанавливать - фреймворк покрывает с ходу большинство web приложений.
2) Документация логичная и подробная (у Phalcon она, к примеру, дурацкая и неполная)
3) Красивая, логичная архитектура
Недавно наталкивался на сравнение Laravel c Ruby on Rails - якобы это аналоги по многим факторам. Противники PHP (как языка для новичков) считают Laravel первым шагом в правильном направлении - попыткой сделать PHP умнее.
Примерно полгода делаю сайты на Laravel - пока ни разу не столкнулся с проблемами, все очень комфортно
Не в сети
Я сначала изучил Symfony, сделал сайт. Потом пытался познакомиться с Yii, буквально сразу оттолкнул, постоянные мысли "здесь все не так, все не то". Познакомился с Laravel, прочитал несколько книг, зацепил он меня сильно. Ради интереса пробовал сделать проект на Symfony, сразу увидел несколько неудобных для себя вещей. В общем, на данный момент работаю с Laravel, Symfony тоже весьма хорош, все остальное имхо на порядок хуже, чем эти два фреймворка.
Не в сети
Мой ответ на вопрос темы: так сказали на работе. I am private dancer, a dancer for money...
Что бы я делал, если б мне предоставили карт-бланш? Написал бы свой движок на чистом php (да я и написал, даже пытался продвигать на рынок - неудачно) - и делал бы сайты. С удовольствием и мягко скажем, не хуже "фреймворковых". Есть сайты, которыми я горжусь - и которые снял с "движков".
Но вот пришлось "положить на землю оружие и выйти с поднятыми руками". Теперь изучаю Laravel. Вот уже неделю. Мне он представляется порождением какого-то больного ума. Но если б только Laravel. Меня не покидает ощущение, что я - представитель индейского племени, которое белые конкистадоры последовательно загоняют в резервации. Все, что я изучал и любил (да и сейчас люблю), вдруг объявили ересью. Юные дарования с презрением цедят "олд скул!".
Больше не буду портить настроение любителям Laravel-а. И если я что-то спрашиваю по Laravel - то уверяю вас, только потому, что не потерял надежды удержаться на работе. На вас вся надежда
Не в сети
Написал бы свой движок на чистом php (да я и написал, даже пытался продвигать на рынок - неудачно) - и делал бы сайты. С удовольствием и мягко скажем, не хуже "фреймворковых". Есть сайты, которыми я горжусь - и которые снял с "движков".
Если это действительно так, мне кажется, у кого-кого, а у Вас проблем не должно возникнуть, по определению. :-)
Не в сети
Меня не покидает ощущение, что я - представитель индейского племени, которое белые конкистадоры последовательно загоняют в резервации. Все, что я изучал и любил (да и сейчас люблю), вдруг объявили ересью.
https://laravel.ru/forum/viewtopic.php?pid=8117#p8117
Если это действительно так, мне кажется, у кого-кого, а у Вас проблем не должно возникнуть, по определению. :-)
Написать свой фреймворк это не проблема. Проблемы начнутся, когда в команде появится новый человек и/или придётся передавать проект другим людям. Фреймворки стандартизируют работу в команде и это их главная задача, а сделать код лучше/проще/быстрее это дополнительные "плюшки" и они не обязательно коррелируют с популярностью фреймворка. То есть никем не признанный фреймворк может быть круче всех существующих вместе взятых, в 10 раз быстрее и в 100 раз меньше, но его популярность будет равна единице (самому автору).
Не в сети
Proger_XP, извиняюсь, я не уточнил, как следует. Я имел ввиду, что не должно быть проблем с изучением laravel, учитывая опыт автора, а то он что-то там про "потерянную надежду".... :-)
Не в сети
Написать свой фреймворк это не проблема. Проблемы начнутся, когда в команде появится новый человек и/или придётся передавать проект другим людям. Фреймворки стандартизируют работу в команде и это их главная задача, а сделать код лучше/проще/быстрее это дополнительные "плюшки" и они не обязательно коррелируют с популярностью фреймворка. То есть никем не признанный фреймворк может быть круче всех существующих вместе взятых, в 10 раз быстрее и в 100 раз меньше, но его популярность будет равна единице (самому автору).
Ну пока именно так и получилось. Я, может, еще вернусь к своей поделке, но не о ней речь.
Все, я честно пытаюсь работать на Laravel. И не понимаю: почему надо было так все запутывать? Почему нельзя было сделать по-нормальному? Но, может, я и правда зажился на свете...
Не в сети
Proger_XP, извиняюсь, я не уточнил, как следует. Я имел ввиду, что не должно быть проблем с изучением laravel, учитывая опыт автора, а то он что-то там про "потерянную надежду".... :-)
Чувствую себя полным придурком уже который день. Бьюсь о проект, который должен вести, как рыба об лед.
Последний раз я так чувствовал себя четверть века назад (говорю же - зажился я на свете!) в МВТУ, когда шел сдавать экзамен по незнакомому мне предмету. Только нет надежды вытянуть хороший билет, списать или разжалобить экзаменатора. Роковой момент доклада о полученных результатах приближается...
И вот мне только одно интересно. Я один такой дурак - или многие сейчас вот также бьются?
Не в сети
В чем проблема-то? Вы же пишете, что прекрасно с PHP... ООП? MVC?
Не в сети
В чем проблема-то? Вы же пишете, что прекрасно с PHP... ООП? MVC?
Ну вот есть первая страница сайта. Не могу понять - как найти view, который ее отрисовывает? Надо кое-что поменять.
Не в сети
Скажите, Вы об MVC представление имеете?
Не в сети
Скажите, Вы об MVC представление имеете?
Идею понимаю. Но как она работает - не понимаю.
Не в сети
Но разобраться придется. Без этого смысла нет с фреймворками начинать.
А пока так. В консоли, в папке проекта выполните
php artisan route:list
В самой первой строке столбец "Action" сюда.
Не в сети
Но разобраться придется. Без этого смысла нет с фреймворками начинать.
А пока так. В консоли, в папке проекта выполнитеphp artisan route:list
В самой первой строке столбец "Action" сюда.
InvalidArgumentException
There are no commands defined in the "route" namespace.
Я уже понял, что вытащил некозырную карту. Ладно, фиг с ней, с работой. Просто хотелось бы узнать - чем этот ваш MVC проще старого доброго обработчика?
Пока не было MVC - вот форма, вот обработчик. Уже б доклад делал...
Не в сети
Есть "старое доброе", а есть новое.
Когда-то давно, мой самый первый работодатель айтишный сказал:
"Программирование - это занятие для молодых людей. И дело тут не в возрасте. Молодой, это тот, кто всегда - "на гребне".
Сами себе профессию выбрали, причем знали, что она самая динамичная, так ведь? Хотите быть "на гребне", ну так и разбирайтесь, при чем тут "некозырная карта" и "фиг с ней, с работой"? И станет понятно, чем новое лучше "старого доброго". Кстати, оно и вправду лучше :-) Уж поверьте :-)
Не в сети
Есть "старое доброе", а есть новое.
Когда-то давно, мой самый первый работодатель айтишный сказал:
"Программирование - это занятие для молодых людей. И дело тут не в возрасте. Молодой, это тот, кто всегда - "на гребне".
Сами себе профессию выбрали, причем знали, что она самая динамичная, так ведь? Хотите быть "на гребне", ну так и разбирайтесь, при чем тут "некозырная карта" и "фиг с ней, с работой"? И станет понятно, чем новое лучше "старого доброго". Кстати, оно и вправду лучше :-) Уж поверьте :-)
Так и знал. Сейчас везде "молодые" (и дело тут не в возрасте). На гребне. Как говорил А.В.Суворов, "мы рождены, чтоб сказку сделать былью". Или это Чацкий у Лермонтова? Впрочем, не важно.
Надеюсь, мои несколько постов в этой теме помогут кому-то. Морально. Кто также, как я, не сможет совладать с этой адской поделкой. Не отчаивайтесь: снесите это убожество и сделайте по-нормальному.
Из этой темы вышел. Свои вопросы буду задавать в спец. темах, просьба не отвечать на них так, как здесь. Если нетрудно, конечно.
Не в сети
с этой адской поделкой
Есть два типа людей: те, кто разведет нытье на несколько дней и, в итоге, громко хлопнет дверью и те, кто пойдет и прочитает книгу, документацию или посмотрит касты.
Количество информации, которое необходимо усвоить, чтобы использовать современные технологии зашкаливает. Новичков буквально "накрывает" и большая часть плюет и сдается. Это нормально.
Совет. Не хочешь учиться новому (паттерны, фреймворки, хорошие практики) - освой что-нибудь проще. Я считаю, что лучше в совершенстве освоить Bootstrap или WordPress и зарабатывать нормально, чем поковыряться в 7 фреймворках на 3 языках и пойти работать на недоработу, где главное требование "- желательное знание одного из фреймворков Laravel/Symfony/Zend/Yii".
Изменено AlexeyMezenin (08.11.2016 16:04:35)
Не в сети
- Совет. Не хочешь учиться новому (паттерны, фреймворки, хорошие практики) — освой что-нибудь проще.
Вообще тема интересная. Надо различать новое и модное (трендовое). С этой точки зрения Laravel никакой не новый, это удачная (с определённых позиций) комбинация уже давно известных CI, Symfony, которые в свою очередь строились на ещё более старых вещах (ZF). Ну, а MVC вообще не в PHP появился.
То ли дело — новое, где вместо традиционного MVC какая-то хитрая концепция, не менее полезная.
Поэтому если ты говоришь «да ну его это MVC, всё не как у людей» — это проблема, ты отказываешься фактически от основ веб-программирования. Что, лучше HTML прямо в коде, каша из обработчиков и данных и т.п.? Нет, конечно. Надо разбираться или встает вопрос — нафига этим заниматься вообще?
Либо если ты говоришь «вот наплодили тут ангуляров и реактов, и веб-паков, и нпм-ов, и бугаев грюнтов» — тут да, критика уместна, так как технологий новых в плане модных, трендовых сегодня чересчур много, а нового в плане концепций (каким был React, например) — мало. В мире PHP-фреймворков так по-моему и вообще нет ничего нового. Разве что Composer, который справедливо задвинул PEAR, но это не фреймворк.
Не в сети