- Какой PHP-фреймворк выбрать: сравниваем Symfony, Laravel и Yii2
- Зачем нужен PHP-фреймворк
- Полезная информация
- Как выбрать PHP-фреймворк
- Symfony, Laravel и Yii2
- Symfony
- Laravel
- Какой PHP-фреймворк лучше
- Шаблонизаторы
- Symfony
- Laravel
- Изучайте Laravel на Хекслете
- Модульность
- Установка
- Скорость разработки
- Производительность
- Поддержка баз данных
- Сообщество и ресурсы
- Расширяемость
- Схожесть характеристик
- Заключение
- Объясните человеческим языком, что такое веб-фреймворк на языке php?
- Framework — это что? Простым языком о том, что такое фрейморк
- Из этой статьи о framework вы узнаете:
- Framework это что?
- Разница между CMS, фреймворками и написание кода с нуля
- Что такое framework?
- Плюсы использования framework
- Минусы использования фреймворков
- Популярные фронтенд фреймворки это
- Популярные бэкэнд framework
- Популярные мобильные framework
- Популярные Python фреймворки
- Популярные PHP-фреймворки
- Фреймворк — что это?
- Преимущества PHP-фреймворков:
- Что учесть при выборе?
- Laravel
- Yii
- Symfony
- Резюме
Какой PHP-фреймворк выбрать: сравниваем Symfony, Laravel и Yii2
В этой статье рассматриваются три наиболее популярных PHP-фреймворка: Symfony, Laravel и Yii2. Автор сравнивает их возможности и пытается помочь читателю выбрать лучший инструмент. Статья предназначена для начинающих разработчиков, которые ещё не работали с PHP-фреймворками.
Зачем нужен PHP-фреймворк
PHP — один из самых популярных и востребованных языков программирования. Его активно используют крупные проекты, например, Facebook и «ВКонтакте». На PHP написаны популярные системы управления контентом (CMS), в том числе WordPress. На этом движке работает около трети всех сайтов в интернете и около 60 % сайтов на CMS.
PHP развивается, а версия 7 сделала этот язык стабильным. В таком случае, зачем нужны фреймворки и почему их часто используют вместо нативного языка? Вот несколько причин:
Нативный PHP позволяет делать приложения. Но перечисленных выше преимуществ достаточно, чтобы обратить внимание на фреймворки.
Полезная информация
Почему Django — лучший фреймворк для разработки сайтов: статья о характеристиках и особенностях популярного веб-фреймворка.
Как выбрать PHP-фреймворк
Выбрать фреймворк помогут ответы на следующие вопросы:
Symfony, Laravel и Yii2
Перед погружением в детали коротко рассмотрим главные особенности наиболее популярных PHP-фреймворков. Это Symfony, Laravel и Yii2.
Symfony
Symfony представляет собой набор PHP-компонентов, которые подходят для повторного использования. Фреймворк позволяет делать масштабируемые и производительные приложения. API Symfony интегрируется со сторонними приложениями, а также с инструментами для фронтенд-разработки, например, Angular JS.
Symfony используют многие популярные проекты, например, Drupal и phpBB. Даже самый популярный PHP-фреймворк Laravel построен на основе Symfony.
Laravel
По состоянию на середину 2019 года это самый популярный PHP-фреймворк в мире. Текущая стабильная версия — 5.8.10. Популярность Laravel подчёркивает следующий факт: многие хостеры предлагают специальные решения для приложений, созданных с помощью этого фреймворка.
Yii был представлен в 2008 году. Это безопасный, быстрый и производительный фреймворк для разработки веб-приложений. Текущая версия — 2.0.19.
В Yii2 используется пакетный менеджер Composer для управления зависимостями. Благодаря ленивой загрузке Yii2 считается самым быстрым PHP-фреймворком.
Ещё одна особенность Yii2 — интеграция с jQuery. Благодаря этому фронтенд-разработчикам удобно работать с приложениями, созданными на Yii2. Как и в Symfony, в Yii2 используются готовые компоненты. Это ускоряет разработку.
Какой PHP-фреймворк лучше
Все перечисленные фреймворки подходят для разработки веб-приложений. Однако у этих инструментов есть отличия, которые разработчик должен учитывать. Подробности ниже.
Шаблонизаторы
Шаблонизаторы ускоряют разработку и упрощают создание фронтенда приложения. Например, с помощью шаблонизаторов решается задача автоматического экранирования HTML.
Symfony
В Symfony по умолчанию используется Twig. Это обработчик шаблонов, который позволяет писать чистый код и расширяет возможности нативного PHP. Например, Twig упрощает создание экранирующих последовательностей.
Laravel
Этот фреймворк не использует сторонних шаблонизаторов по умолчанию. Но разработчик может выбирать инструменты в зависимости от решаемых задач. В число рекомендуемых шаблонизаторов входят Twig и Smarty.
Промежуточный вывод: по данному критерию чистого победителя нет. Все фреймворки поддерживают работу с шаблонизаторами, что ускоряет разработку фронтенда приложений. Небольшое преимущество имеет Yii2, так как в нём не используется какой-либо шаблонизатор по умолчанию.
Изучайте Laravel на Хекслете
Курс по Laravel входит в профессию «PHP-программист». Первые курсы в профессии доступны бесплатно после регистрации.
Модульность
В Symfony есть стандартные компоненты, которые можно использовать для создания приложений. То есть Symfony — отличный пример модульного фреймворка.
В Yii2 реализован подход MVC. В этом фреймворке тоже есть компоненты, однако модульность реализована не так хорошо, как в Symphony.
Laravel уступает Symfony и Yii2 в возможности использовать модульный подход для разработки приложений.
Промежуточный вывод: если вам нужен модульный PHP-фреймворк, выбирайте Symfony.
Установка
Каждый фреймворк поддерживает несколько вариантов установки. Например, Symfony, Laravel и Yii2 можно установить с помощью пакетного менеджера Composer. Все фреймворки после установки позволяют работать с шаблонным приложением.
Промежуточный вывод: по критерию простоты установки победителей нет, каждый из трёх инструментов легко устанавливать.
Скорость разработки
Symfony считается надёжным фреймворком, за которым стоит многочисленное и активное сообщество. Laravel быстро развивается и удерживает первое место в списке самых популярных фреймворков. Yii2 обеспечивает производительность приложений.
Если вам нужно как можно быстрее создать веб-приложение, и вы никогда не работали с PHP-фреймворками, выбирайте Laravel. Его проще всего изучать, и в сети больше всего руководств именно по Laravel.
Производительность
По мнению автора оригинальной статьи, наиболее производительным фреймворком является Yii2. Это оптимальный выбор для создания высоконагруженных приложений.
Производительность Laravel — дискутабельный вопрос. По этому критерию он уступает Yii2 и Symfony. Тем не менее в сети можно найти много рекомендаций по ускорению приложений на Laravel.
Поддержка баз данных
По этому критерию бесспорным лидером становится Symfony. Yii2 и Laravel отстают. Конкретную информацию можно увидеть в таблице.
Laravel | Yii2 | Symfony |
---|---|---|
Microsoft BI | Microsoft BI | Apache Jackrabbit |
MongoDB | MongoDB | CouchDB |
MySQL | MySQL | DynamoDB |
PostgreSQL | PostgreSQL | GraphDB |
Redis | Redis | MemBase |
SQLite | SQLite | MemCasheDB |
Microsoft BI | ||
MySQL | ||
MongoDB | ||
NoSQL | ||
Oracle | ||
PostgreSQL |
Сообщество и ресурсы
Многочисленное активное сообщество можно считать гарантией долгосрочной поддержки и развития инструмента. Вокруг рассматриваемых фреймворков сформированы большие сообщества. Комьюнити Symfony можно назвать наиболее зрелым.
Важный момент — будущее фреймворка лучше оценивать не по статичной величине сообщества, а по его динамике и активности.
Если оценивать такой ресурс, как документацию и обучающие материалы, здесь лидером будет Laravel.
Расширяемость
Функциональность фреймворков увеличивается с помощью расширений или пакетов. По этому критерию лидером остаётся Laravel. В каталоге Packalyst можно найти около 9000 пакетов для Laravel.
Yii2 и Symfony могут похвастаться 2800 и 2830 расширениями соответственно. Если для вас важна возможность расширить стандартную функциональность фреймворка с помощью дополнительных пакетов, выбор очевиден.
Схожесть характеристик
Выше мы рассматривали разницу между фреймворками. Пришло время сосредоточиться на похожих характеристиках. Вот они:
Всё ещё не можете выбрать фреймворк? Вот тезисная информация, которая поможет определиться.
Заключение
Symfony, Laravel и Yii2 можно назвать отличными инструментами для разработки веб-приложений. Автор оригинальной статьи предпочитает Laravel. В то же время он считает Symfony и Yii2 не менее мощными инструментами. Особенностью Symfony можно назвать развитое сообщество, а особенностью Yii — надёжность и безопасность.
Пожалуйста, напишите в комментариях, какой PHP-фреймворк выбираете вы.
Адаптированный перевод статьи Michael J. Garbade How to choose a PHP framework. Мнение автора оригинальной публикации может отличаться от мнения администрации и сотрудников Хекслета.
Объясните человеческим языком, что такое веб-фреймворк на языке php?
Привет всем! Уже не первый месяц слышу советы (перейди на фреймворк). До этого писал всё сам с нуля. Нельзя игнорировать такое количество и хотя бы не разобраться с этой штукой. Всвязи с этим несколько вопросов, что это вообще такое. Прошу не давать ссылки на википедию и т.д. ибо я там давно уже все перечитал, но толком ничего дельного по своим вопросам не нашел:
1. Смогу ли я на фреймворке писать свои модули (любые и любой сложности) для моей CMS. Наверняка не в одном фреймворке нет функции анализа собственного контента (для последующего продвижения) по принципу поисковых роботов. Не помешает ли мне фреймворк создавать такие модули из-за своего ограниченного функционала.
2. Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению (если выйдет новая версия). Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.
3. На сколько я буду зависеть от выхода новых версий? Например, я хочу сейчас скачать и дальше уже делать с ним что угодно не боясь, как в предыдущем вопросе, что найдут какую-то уязвимость и снова придется его обновлять и переписывать все свои коды в сотнях файлах php.
4. Можно ли будет (искюча вариант, что я скопирую сайт на локалку и год буду переписывать его с нуля на фреймворк) постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.
5. Ну и наконец, выбрал я, скажем, вреймворк. А разработчик прикрыл его дальнейшую разработку. Могу ли я оставить фреймворк и дальше им пользоваться не переписывая опять все файлы на новый фреймворк.
P.S. Извиняюсь, за, скорее всего, странные вопросы, но до этого я всё писал сам, не пользовался никакими CMS (коме DLE очень давно) или Фреймворками, поэтому не могу решить и начать переносить все свои проекты на фреймворк.
Смогу ли я на фреймворке писать свои модули для моей CMS
Наверняка не в одном фреймворке нет функции анализа собственного контента по принципу поисковых роботов.
Не помешает ли мне фреймворк создавать такие модули из-за своего ограниченного функционала.
Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению.
Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.
На сколько я буду зависеть от выхода новых версий?
Например, я хочу сейчас скачать и дальше уже делать с ним что угодно не боясь, как в предыдущем вопросе, что найдут какую-то уязвимость и снова придется его обновлять и переписывать все свои коды в сотнях файлах php.
Можно ли будет постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.
Ну и наконец, выбрал я, скажем, вреймворк. А разработчик прикрыл его дальнейшую разработку. Могу ли я оставить фреймворк и дальше им пользоваться не переписывая опять все файлы на новый фреймворк.
Вам проще почитать документацию пары тройки популярных фреймворков, сразу все поймете.
В фреймворке все это уже собрано, подробно описано и задокументировано. Хороший фреймворк старается минимально обязать вас к чему то и предоставить максимум гибкости и возможностей. Если вам так надо, можете игнорировать большую часть возможностей фреймворка, а можете вместо каких то его частей использовать сторонние или свои.
Проводя аналогию, если бы PHP разработчик, который все проекты пишет с нуля, был плотником: ему бы пришлось в какой то степени овладеть кузнечным делом, чтобы выковать себе инструмент. Инструмент он изобретал бы сам, поэтому самодельной, уникальной, отверткой не получилось бы закрутить стандартный саморез. И скорее всего в каждом проекте появлялась бы парочка саморезов нового типа + отвертки под них, не совместимые с предыдущими. По той же причине ни у кого бы не получилось с ходу собрать/разобрать/починить его изделие.
Самостоятельно бы пришлось изобретать и многие технологии деревообработки. Само собой они бы уступали технологиям проверенным временем и тысячами других мастеров, поэтому изделия получались бы массивными, хрупкими и в целом сомнительного качества.
Смогу ли я на фреймворке писать свои модули (любые и любой сложности) для моей CMS. Наверняка не в одном фреймворке нет функции анализа собственного контента (для последующего продвижения) по принципу поисковых роботов. Не помешает ли мне фреймворк создавать такие модули из-за своего ограниченного функционала.
Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению (если выйдет новая версия). Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.
На сколько я буду зависеть от выхода новых версий? Например, я хочу сейчас скачать и дальше уже делать с ним что угодно не боясь, как в предыдущем вопросе, что найдут какую-то уязвимость и снова придется его обновлять и переписывать все свои коды в сотнях файлах php.
Можно ли будет (искюча вариант, что я скопирую сайт на локалку и год буду переписывать его с нуля на фреймворк) постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.
При желании можно все. Но архитектура фреймворков, и того же Laravel такова, что изучив и поняв ее вам захочется все написать с нуля. И, поверьте, это у вас займет очень мало времени (по сравнению со временем, которое вы потратили на написание всего с нуля).
Ну и наконец, выбрал я, скажем, вреймворк. А разработчик прикрыл его дальнейшую разработку. Могу ли я оставить фреймворк и дальше им пользоваться не переписывая опять все файлы на новый фреймворк.
Framework — это что? Простым языком о том, что такое фрейморк
Написали статью для новичков, чтобы рассказать, что это такое и какие виды framework-ов бывают.
Framework — это что?
Из этой статьи о framework вы узнаете:
Framework это что?
Фреймворк — это структура, на базе которой можно создать конечный продукт. Это проще, чем писать весь код с нуля.
Проведем аналогию с домом. Если вы хотите его построить, то можно закупить материалы и делать все самостоятельно, набивая шишки. А можно скачать в интернете готовый план постройки. Конечно, вы все еще можете набить шишки, когда будете клеить обои и выбирать мебель. Но, по крайней мере, фундамент, стены, крыша и канализационная система точно будут в порядке. Потому что то, как их строить, прописано в плане постройки.
Framework — это тот самый план постройки продукта для разработчиков.
Разница между CMS, фреймворками и написание кода с нуля
Разбираем на примере фронтенд-разработки. Предположим, вам нужно создать сайт. Есть 3 подхода, которые можно использовать: написать код с нуля, использовать framework или использовать CMS.
Что такое framework?
Framework — это набор шаблонов, заготовок. Каркас будущего проекта, на который разработчик может нанизывать дополнительные функции и фишки, которые нужны проекту.
Framework используют, потому что это удобно. Создавать проект проще, потому что у него уже есть структура. Разработчику остается пройтись по всем блокам кода, сопоставить их с техническим задание и сделать вывод, что и куда нужно добавить.
Плюсы использования framework
Минусы использования фреймворков
Популярные фронтенд фреймворки это
React.js — это framework на JavaScript. Его создал Facebook 7 лет назад, в 2013 году. Framework React.js обычно применяют чтобы проектировать интерфейсы, которыми будет пользоваться конечный клиент.
Хотите быстро и легко понять, как работает framework React.js? Запишитесь на консультацию к ментору!
Angular — framework для веб-разработчиков, который разработали в компании Google. Этот фреймворк обычно используют для создания динамических приложений. Он удобный благодаря открытому исходному коду и большому количеству внутренних возможностей.
Vue.js — framework, который разработал и выпустил в 2014 году сотрудник Google Эван Ю. У него также исходный открытый код и 89% разработчиков, который использует его, довольны.
JQuery — один из самых ранних framework. Он появился в далеком 2006 году. Этот framework неплохо подходит для создания небольших проектов, в которых не используется большое количество дополнительных элементов JavaScipt.
Антон Волков, CTO в Solvery:
React.js проще, быстрее и гибче конкурентов, потому что из коробки в нем меньше функционала. Это один из самых популярных фреймворков по фронтенду. Также популярен Angular. Он не такой гибкий, как React, и тяжелее его. Но в нем из коробки зашито больше функций, поэтому на Angular быстрее сделать готовый продукт. Соответственно, если вы не хотите думать о структуре и архитектуре проекта, то логичнее использовать Angular. К тому же, у него есть официальные подробные и качественный гайдлайны. А если важна гибкость, скорость загрузки и возможность вносить максимум изменений — выбирайте React.
Новичкам логичнее начинать с Angular, чтобы допускать меньше глупых ошибок. Но в целом ничего не мешает идти наоборот. Главное не гнаться за популярными молодми технологиями. Часто в новых фреймворках обещают кучу плюшек. Но часто они менее гибкие, чем их классические «товарищи». Чем больше всего загружено во фреймворк из коробки, тем больше шанс, что продукт в каком-то смысле станет заложником технологии.
Популярные бэкэнд framework
Laravel — один из самых популярных бэкенд framework для языка программирования PHP. Его выпустил американский разработчик Тэйлор Отвел в 2011 году. Framework регулярно обновляется. У него открытый исходный код. И много удобных инструментов для решения стандартизированных задач.
Хотите быстро и легко понять, как работает framework Laravel? Запишитесь на консультацию к ментору-специалисту, который объяснит вам все детали работы framework!
Flask — молодой framework от австрийского разработчика Армина Ронахера. Flask часто относят к категории микрофреймворков. Это значит, что в нем присутствуют только самые базовые конструкции.
Express.js — самый популярный framework для разработки Node.js приложений. Его используют в создании программ для смартфонов и веб-сайтов.
Популярные мобильные framework
Flutter — самый популярный мобильный framework для Android от создателя самого Android — компании Google.
Станьте специалистом по Flutter и напишите свое первое приложение для Android с помощью ментора!
Ionic — один из самых популярных Android framework с открытым исходным кодом. Его структура похожа на структуру фронтенд framework-ов. Ionic может работать совместно с Angular и React.
AFNetworking или Alamofire — фреймворки Objective-C и Swift, соответственно. Они помогают упростить работу мобильных приложений на IOS с сетью.
Популярные Python фреймворки
Django — этот framework был выпущен в далеком 2005 году. Он заточен под быструю и эффективную разработку. Очень практичный фреймворк.
Pyramid — фреймворк Pyramid представили в 2010 году.
Популярные PHP-фреймворки
Язык программирования PHP (Hypertext PreProcessor), появившийся в далеком 1994 году, по сей день является популярным инструментом разработки веба. Сегодня он применяется при создании разных программных продуктов, а раз уж мы вспомнили про web, то скажем, что PHP используется сегодня приблизительно на 80 % сайтов, причем некоторые наиболее удачные проекты знает практически каждый: Google, Facebook, Wikipedia. А еще на PHP работает около 50 % систем управления контентом (CMS), включая тот же WordPress, на движке которого сейчас находится данная статья.
Однако сложно представить полноценную работу с PHP без таких инструментов, как фреймворки. Именно они существенно повышают скорость и эффективность создания сайтов и программных приложений. О них и поговорим.
Фреймворк — что это?
Фреймворк (framework — конструкция, каркас) представляет собой программную платформу, определяющую структуру программной системы. Также это ПО, которое облегчает разработку и интеграцию различных компонентов программного проекта. К примеру, чтобы не писать какой-нибудь модуль с нуля, намного проще и быстрее задействовать уже готовый шаблон фреймворка, который сформируют рабочую среду программиста.
Вам должно быть известно, что фреймворки существуют и у множества других языков программирования: Java, Python, JavaScript и т. д. Однако именно PHP-фреймворки до сих пор занимают важнейшее место среди инструментов современной бэкэнд-разработки.
Преимущества PHP-фреймворков:
Что учесть при выборе?
Выбор PHP-фреймворка зависит от целей и масштабов предстоящего проекта. На какие нюансы стоит обратить особое внимание:
Laravel
Один из наиболее популярных PHP-фреймворков, что стало возможным благодаря простоте освоения и активному развитию. Начинающим предлагаются довольно комфортные условия пошагового погружения в сферу разработки web. Широкий функционал Laravel позволяет решать большой набор задач бэкэнда, причем даже тем, кто не имеет многолетнего опыта в этом направлении.
Плюсы Laravel:
Yii
Этот объектно-ориентированный PHP-framework называют лидером и одним из лучших в плане обеспечения производительности, поэтому его нередко выбирают для разработки высоконагруженных веб-приложений. А еще у него развитое профессиональное сообщество, причем многие из его участников являются русскоговорящими.
Преимущества Yii:
Symfony
Гибкий функционал, модульный подход к построению системы — все это framework Symfony. Он дает возможность либо выбирать нужные функции PHP, либо оперировать инфраструктурой целиком. Это сбалансированное решение для программиста, умеющего ценить модульность и преимущества, которые дает применение отдельных компонентов. Веб-приложения, написанные на Symfony, отличаются высокой производительностью, благодаря чему их часто используют при решении сложных задач уровня Enterprise.
Особенности:
Zend Framework
Неплохое решение по части разработки качественных корпоративных веб-приложений. Минус этого PHP-фреймворка заключается в сложности изучении, однако плюсы, которые дает ООП, расширяемая функциональность и интеграция дополнительных внешних библиотек, однозначно стоят того, чтобы обратить свое внимание на PHP Zend.
Плюсы Zend Framework:
Резюме
PHP фреймворки — отличный инструмент и для создания полнофункциональных веб-приложений, и для создания API. Одни фреймворки новее и современнее, другие старше и характеризуются надежностью, проверенной временем. Суть не в этом, а в том, что их использование экономит время и позволяет практически любому разработчику делать свою работу быстрее за счет готовых шаблонов, фреймов и решений.
Выбирать удобный инструмент следует, учитывая сложность проекта, его масштабность. Если перед вами стоит очень сложная и крупная задача, учитывайте доступный функционал платформы, масштабируемость, ресурсоемкость, производительность, совместимость с версиями PHP и базами данных. Если же предстоит небольшой проект на PHP, то для таких задач подойдут универсальные решения, где соблюдается оптимальный баланс между основными компонентами и требовательностью к ресурсам.
А каким фреймворком в процессе своей работы пользуетесь вы и почему? Пишите в комментариях!