HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В этой статье рассматриваются три наиболее популярных PHP-фреймворка: Symfony, Laravel и Yii2. Автор сравнивает их возможности и пытается помочь читателю выбрать лучший инструмент. Статья предназначена для начинающих разработчиков, которые ещё не работали с PHP-фреймворками.</p>
1 <p>В этой статье рассматриваются три наиболее популярных PHP-фреймворка: Symfony, Laravel и Yii2. Автор сравнивает их возможности и пытается помочь читателю выбрать лучший инструмент. Статья предназначена для начинающих разработчиков, которые ещё не работали с PHP-фреймворками.</p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>Зачем нужен PHP-фреймворк</a></li>
3 <ul><li><a>Зачем нужен PHP-фреймворк</a></li>
4 <li><a>Как выбрать PHP-фреймворк</a></li>
4 <li><a>Как выбрать PHP-фреймворк</a></li>
5 <li><a>Symfony, Laravel и Yii2</a></li>
5 <li><a>Symfony, Laravel и Yii2</a></li>
6 <li><a>Какой PHP-фреймворк лучше</a></li>
6 <li><a>Какой PHP-фреймворк лучше</a></li>
7 <li><a>Шаблонизаторы</a></li>
7 <li><a>Шаблонизаторы</a></li>
8 <li><a>Заключение</a></li>
8 <li><a>Заключение</a></li>
9 </ul><h2>Зачем нужен PHP-фреймворк</h2>
9 </ul><h2>Зачем нужен PHP-фреймворк</h2>
10 <p>PHP - один из самых популярных и востребованных языков программирования. Его активно используют крупные проекты, например, Facebook и "ВКонтакте". На PHP написаны популярные системы управления контентом (CMS), в том числе WordPress. На этом движке работает около трети всех сайтов в интернете и около 60 % сайтов на CMS.</p>
10 <p>PHP - один из самых популярных и востребованных языков программирования. Его активно используют крупные проекты, например, Facebook и "ВКонтакте". На PHP написаны популярные системы управления контентом (CMS), в том числе WordPress. На этом движке работает около трети всех сайтов в интернете и около 60 % сайтов на CMS.</p>
11 <p><a>PHP развивается</a>, а версия 7 сделала этот язык стабильным. В таком случае, зачем нужны фреймворки и почему их часто используют вместо нативного языка? Вот несколько причин:</p>
11 <p><a>PHP развивается</a>, а версия 7 сделала этот язык стабильным. В таком случае, зачем нужны фреймворки и почему их часто используют вместо нативного языка? Вот несколько причин:</p>
12 <ul><li>Фреймворки ускоряют разработку. Например, PHP-фреймворк избавляет вас от необходимости писать запросы к базам данных. В фреймворках реализованы базовые функции CRUD, которые необходимы для работы с базами данных.</li>
12 <ul><li>Фреймворки ускоряют разработку. Например, PHP-фреймворк избавляет вас от необходимости писать запросы к базам данных. В фреймворках реализованы базовые функции CRUD, которые необходимы для работы с базами данных.</li>
13 <li>Написанные на фреймворках приложения легко масштабируются.</li>
13 <li>Написанные на фреймворках приложения легко масштабируются.</li>
14 <li>Поддерживать легче проект на фреймворке, чем на нативном PHP. Код фреймворков лаконичный, поэтому с ним просто работать.</li>
14 <li>Поддерживать легче проект на фреймворке, чем на нативном PHP. Код фреймворков лаконичный, поэтому с ним просто работать.</li>
15 <li>В PHP-фреймворках используется<a>модель MVC</a>. Она упрощает разработку.</li>
15 <li>В PHP-фреймворках используется<a>модель MVC</a>. Она упрощает разработку.</li>
16 <li>Приложения на фреймворках лучше защищены, чем приложения на чистом PHP.</li>
16 <li>Приложения на фреймворках лучше защищены, чем приложения на чистом PHP.</li>
17 <li>В фреймворках реализован принцип DRY. Это позволяет разработчикам писать меньше кода.</li>
17 <li>В фреймворках реализован принцип DRY. Это позволяет разработчикам писать меньше кода.</li>
18 </ul><p>Нативный PHP позволяет делать приложения. Но перечисленных выше преимуществ достаточно, чтобы обратить внимание на фреймворки.</p>
18 </ul><p>Нативный PHP позволяет делать приложения. Но перечисленных выше преимуществ достаточно, чтобы обратить внимание на фреймворки.</p>
19 <h2>Как выбрать PHP-фреймворк</h2>
19 <h2>Как выбрать PHP-фреймворк</h2>
20 <p>Выбрать фреймворк помогут ответы на следующие вопросы:</p>
20 <p>Выбрать фреймворк помогут ответы на следующие вопросы:</p>
21 <ul><li>Какая функциональность у фреймворка, соответствует ли она нуждам проекта?</li>
21 <ul><li>Какая функциональность у фреймворка, соответствует ли она нуждам проекта?</li>
22 <li>Насколько сложно изучать выбранный фреймворк?</li>
22 <li>Насколько сложно изучать выбранный фреймворк?</li>
23 <li>Легко ли масштабировать проект, созданный с помощью данного фреймворка?</li>
23 <li>Легко ли масштабировать проект, созданный с помощью данного фреймворка?</li>
24 <li>Насколько активно развивается инструмент?</li>
24 <li>Насколько активно развивается инструмент?</li>
25 <li>Есть ли гарантированная долгосрочная поддержка (LTS)?</li>
25 <li>Есть ли гарантированная долгосрочная поддержка (LTS)?</li>
26 <li>Есть ли активное сообщество?</li>
26 <li>Есть ли активное сообщество?</li>
27 </ul><h2>Symfony, Laravel и Yii2</h2>
27 </ul><h2>Symfony, Laravel и Yii2</h2>
28 <p>Перед погружением в детали коротко рассмотрим главные особенности наиболее популярных PHP-фреймворков. Это Symfony, Laravel и Yii2.</p>
28 <p>Перед погружением в детали коротко рассмотрим главные особенности наиболее популярных PHP-фреймворков. Это Symfony, Laravel и Yii2.</p>
29 <h3>Symfony</h3>
29 <h3>Symfony</h3>
30 <p>Symfony представляет собой набор PHP-компонентов, которые подходят для повторного использования. Фреймворк позволяет делать масштабируемые и производительные приложения. API Symfony интегрируется со сторонними приложениями, а также с инструментами для фронтенд-разработки, например, Angular JS.</p>
30 <p>Symfony представляет собой набор PHP-компонентов, которые подходят для повторного использования. Фреймворк позволяет делать масштабируемые и производительные приложения. API Symfony интегрируется со сторонними приложениями, а также с инструментами для фронтенд-разработки, например, Angular JS.</p>
31 <p>Symfony используют многие популярные проекты, например, Drupal и phpBB. Даже самый популярный PHP-фреймворк Laravel построен на основе Symfony.</p>
31 <p>Symfony используют многие популярные проекты, например, Drupal и phpBB. Даже самый популярный PHP-фреймворк Laravel построен на основе Symfony.</p>
32 <h3>Laravel</h3>
32 <h3>Laravel</h3>
33 <p>По состоянию на середину 2019 года это самый популярный PHP-фреймворк в мире. Текущая стабильная версия - 5.8.10. Популярность Laravel подчёркивает следующий факт: многие хостеры предлагают специальные решения для приложений, созданных с помощью этого фреймворка.</p>
33 <p>По состоянию на середину 2019 года это самый популярный PHP-фреймворк в мире. Текущая стабильная версия - 5.8.10. Популярность Laravel подчёркивает следующий факт: многие хостеры предлагают специальные решения для приложений, созданных с помощью этого фреймворка.</p>
34 <h3>Yii2</h3>
34 <h3>Yii2</h3>
35 <p>Yii был представлен в 2008 году. Это безопасный, быстрый и производительный фреймворк для разработки веб-приложений. Текущая версия - 2.0.19.</p>
35 <p>Yii был представлен в 2008 году. Это безопасный, быстрый и производительный фреймворк для разработки веб-приложений. Текущая версия - 2.0.19.</p>
36 <p>В Yii2 используется пакетный менеджер Composer для управления зависимостями. Благодаря ленивой загрузке Yii2 считается самым быстрым PHP-фреймворком.</p>
36 <p>В Yii2 используется пакетный менеджер Composer для управления зависимостями. Благодаря ленивой загрузке Yii2 считается самым быстрым PHP-фреймворком.</p>
37 <p>Ещё одна особенность Yii2 - интеграция с jQuery. Благодаря этому фронтенд-разработчикам удобно работать с приложениями, созданными на Yii2. Как и в Symfony, в Yii2 используются готовые компоненты. Это ускоряет разработку.</p>
37 <p>Ещё одна особенность Yii2 - интеграция с jQuery. Благодаря этому фронтенд-разработчикам удобно работать с приложениями, созданными на Yii2. Как и в Symfony, в Yii2 используются готовые компоненты. Это ускоряет разработку.</p>
38 <h2>Какой PHP-фреймворк лучше</h2>
38 <h2>Какой PHP-фреймворк лучше</h2>
39 <p>Все перечисленные фреймворки подходят для разработки веб-приложений. Однако у этих инструментов есть отличия, которые разработчик должен учитывать. Подробности ниже.</p>
39 <p>Все перечисленные фреймворки подходят для разработки веб-приложений. Однако у этих инструментов есть отличия, которые разработчик должен учитывать. Подробности ниже.</p>
40 <h2>Шаблонизаторы</h2>
40 <h2>Шаблонизаторы</h2>
41 <p>Шаблонизаторы ускоряют разработку и упрощают создание фронтенда приложения. Например, с помощью шаблонизаторов решается задача автоматического экранирования HTML.</p>
41 <p>Шаблонизаторы ускоряют разработку и упрощают создание фронтенда приложения. Например, с помощью шаблонизаторов решается задача автоматического экранирования HTML.</p>
42 <h3>Symfony</h3>
42 <h3>Symfony</h3>
43 <p>В Symfony по умолчанию используется Twig. Это обработчик шаблонов, который позволяет писать чистый код и расширяет возможности нативного PHP. Например, Twig упрощает создание экранирующих последовательностей.</p>
43 <p>В Symfony по умолчанию используется Twig. Это обработчик шаблонов, который позволяет писать чистый код и расширяет возможности нативного PHP. Например, Twig упрощает создание экранирующих последовательностей.</p>
44 <h3>Laravel</h3>
44 <h3>Laravel</h3>
45 <p>В этом фреймворке применяется шаблонизатор Blade. Он позволяет использовать код PHP в представлениях. Blade практически не влияет на скорость работы приложений, так как представления хранятся в отдельных файлах с расширением .blade.php. Код представлений преобразуется в нативный PHP.</p>
45 <p>В этом фреймворке применяется шаблонизатор Blade. Он позволяет использовать код PHP в представлениях. Blade практически не влияет на скорость работы приложений, так как представления хранятся в отдельных файлах с расширением .blade.php. Код представлений преобразуется в нативный PHP.</p>
46 <h3>Yii2</h3>
46 <h3>Yii2</h3>
47 <p>Этот фреймворк не использует сторонних шаблонизаторов по умолчанию. Но разработчик может выбирать инструменты в зависимости от решаемых задач. В число рекомендуемых шаблонизаторов входят Twig и Smarty.</p>
47 <p>Этот фреймворк не использует сторонних шаблонизаторов по умолчанию. Но разработчик может выбирать инструменты в зависимости от решаемых задач. В число рекомендуемых шаблонизаторов входят Twig и Smarty.</p>
48 <p>Промежуточный вывод: по данному критерию чистого победителя нет. Все фреймворки поддерживают работу с шаблонизаторами, что ускоряет разработку фронтенда приложений. Небольшое преимущество имеет Yii2, так как в нём не используется какой-либо шаблонизатор по умолчанию.</p>
48 <p>Промежуточный вывод: по данному критерию чистого победителя нет. Все фреймворки поддерживают работу с шаблонизаторами, что ускоряет разработку фронтенда приложений. Небольшое преимущество имеет Yii2, так как в нём не используется какой-либо шаблонизатор по умолчанию.</p>
49 <blockquote><h2>Изучайте Laravel на Хекслете</h2>
49 <blockquote><h2>Изучайте Laravel на Хекслете</h2>
50 <p>Курс по Laravel входит в профессию "PHP-программист". Первые<a>курсы в профессии</a>доступны бесплатно после регистрации.</p>
50 <p>Курс по Laravel входит в профессию "PHP-программист". Первые<a>курсы в профессии</a>доступны бесплатно после регистрации.</p>
51 </blockquote><h3>Модульность</h3>
51 </blockquote><h3>Модульность</h3>
52 <p>В Symfony есть стандартные компоненты, которые можно использовать для создания приложений. То есть Symfony - отличный пример модульного фреймворка.</p>
52 <p>В Symfony есть стандартные компоненты, которые можно использовать для создания приложений. То есть Symfony - отличный пример модульного фреймворка.</p>
53 <p>В Yii2 реализован<a>подход MVC</a>. В этом фреймворке тоже есть компоненты, однако модульность реализована не так хорошо, как в Symphony.</p>
53 <p>В Yii2 реализован<a>подход MVC</a>. В этом фреймворке тоже есть компоненты, однако модульность реализована не так хорошо, как в Symphony.</p>
54 <p>Laravel уступает Symfony и Yii2 в возможности использовать модульный подход для разработки приложений.</p>
54 <p>Laravel уступает Symfony и Yii2 в возможности использовать модульный подход для разработки приложений.</p>
55 <p>Промежуточный вывод: если вам нужен модульный PHP-фреймворк, выбирайте Symfony.</p>
55 <p>Промежуточный вывод: если вам нужен модульный PHP-фреймворк, выбирайте Symfony.</p>
56 <h3>Установка</h3>
56 <h3>Установка</h3>
57 <p>Каждый фреймворк поддерживает несколько вариантов установки. Например, Symfony, Laravel и Yii2 можно установить с помощью пакетного менеджера Composer. Все фреймворки после установки позволяют работать с шаблонным приложением.</p>
57 <p>Каждый фреймворк поддерживает несколько вариантов установки. Например, Symfony, Laravel и Yii2 можно установить с помощью пакетного менеджера Composer. Все фреймворки после установки позволяют работать с шаблонным приложением.</p>
58 <p>Промежуточный вывод: по критерию простоты установки победителей нет, каждый из трёх инструментов легко устанавливать.</p>
58 <p>Промежуточный вывод: по критерию простоты установки победителей нет, каждый из трёх инструментов легко устанавливать.</p>
59 <h3>Скорость разработки</h3>
59 <h3>Скорость разработки</h3>
60 <p>Symfony считается надёжным фреймворком, за которым стоит многочисленное и активное сообщество. Laravel быстро развивается и удерживает первое место в списке самых популярных фреймворков. Yii2 обеспечивает производительность приложений.</p>
60 <p>Symfony считается надёжным фреймворком, за которым стоит многочисленное и активное сообщество. Laravel быстро развивается и удерживает первое место в списке самых популярных фреймворков. Yii2 обеспечивает производительность приложений.</p>
61 <p>Если вам нужно как можно быстрее создать веб-приложение, и вы никогда не работали с PHP-фреймворками, выбирайте Laravel. Его проще всего изучать, и в сети больше всего руководств именно по Laravel.</p>
61 <p>Если вам нужно как можно быстрее создать веб-приложение, и вы никогда не работали с PHP-фреймворками, выбирайте Laravel. Его проще всего изучать, и в сети больше всего руководств именно по Laravel.</p>
62 <h3>Производительность</h3>
62 <h3>Производительность</h3>
63 <p>По мнению автора оригинальной статьи, наиболее производительным фреймворком является Yii2. Это оптимальный выбор для создания высоконагруженных приложений.</p>
63 <p>По мнению автора оригинальной статьи, наиболее производительным фреймворком является Yii2. Это оптимальный выбор для создания высоконагруженных приложений.</p>
64 <p>Производительность Laravel - дискутабельный вопрос. По этому критерию он уступает Yii2 и Symfony. Тем не менее в сети можно найти много рекомендаций по ускорению приложений на Laravel.</p>
64 <p>Производительность Laravel - дискутабельный вопрос. По этому критерию он уступает Yii2 и Symfony. Тем не менее в сети можно найти много рекомендаций по ускорению приложений на Laravel.</p>
65 <h3>Поддержка баз данных</h3>
65 <h3>Поддержка баз данных</h3>
66 <p>По этому критерию бесспорным лидером становится Symfony. Yii2 и Laravel отстают. Конкретную информацию можно увидеть в таблице.</p>
66 <p>По этому критерию бесспорным лидером становится Symfony. Yii2 и Laravel отстают. Конкретную информацию можно увидеть в таблице.</p>
67 <h3>Сообщество и ресурсы</h3>
67 <h3>Сообщество и ресурсы</h3>
68 <p>Многочисленное активное сообщество можно считать гарантией долгосрочной поддержки и развития инструмента. Вокруг рассматриваемых фреймворков сформированы большие сообщества. Комьюнити Symfony можно назвать наиболее зрелым.</p>
68 <p>Многочисленное активное сообщество можно считать гарантией долгосрочной поддержки и развития инструмента. Вокруг рассматриваемых фреймворков сформированы большие сообщества. Комьюнити Symfony можно назвать наиболее зрелым.</p>
69 <p><em>Важный момент - будущее фреймворка лучше оценивать не по статичной величине сообщества, а по его динамике и активности.</em></p>
69 <p><em>Важный момент - будущее фреймворка лучше оценивать не по статичной величине сообщества, а по его динамике и активности.</em></p>
70 <p>Если оценивать такой ресурс, как документацию и обучающие материалы, здесь лидером будет Laravel.</p>
70 <p>Если оценивать такой ресурс, как документацию и обучающие материалы, здесь лидером будет Laravel.</p>
71 <h3>Расширяемость</h3>
71 <h3>Расширяемость</h3>
72 <p>Функциональность фреймворков увеличивается с помощью расширений или пакетов. По этому критерию лидером остаётся Laravel. В каталоге Packalyst можно найти около 9000 пакетов для Laravel.</p>
72 <p>Функциональность фреймворков увеличивается с помощью расширений или пакетов. По этому критерию лидером остаётся Laravel. В каталоге Packalyst можно найти около 9000 пакетов для Laravel.</p>
73 <p>Yii2 и Symfony могут похвастаться 2800 и 2830 расширениями соответственно. Если для вас важна возможность расширить стандартную функциональность фреймворка с помощью дополнительных пакетов, выбор очевиден.</p>
73 <p>Yii2 и Symfony могут похвастаться 2800 и 2830 расширениями соответственно. Если для вас важна возможность расширить стандартную функциональность фреймворка с помощью дополнительных пакетов, выбор очевиден.</p>
74 <h3>Схожесть характеристик</h3>
74 <h3>Схожесть характеристик</h3>
75 <p>Выше мы рассматривали разницу между фреймворками. Пришло время сосредоточиться на похожих характеристиках. Вот они:</p>
75 <p>Выше мы рассматривали разницу между фреймворками. Пришло время сосредоточиться на похожих характеристиках. Вот они:</p>
76 <ul><li>Все три инструмента относятся к fullstack-фреймворкам. Они обеспечивают полный цикл разработки веб-приложения, включая фронтенд и бэкенд.</li>
76 <ul><li>Все три инструмента относятся к fullstack-фреймворкам. Они обеспечивают полный цикл разработки веб-приложения, включая фронтенд и бэкенд.</li>
77 <li>Это проекты с открытым исходным кодом, который можно найти на GitHub.</li>
77 <li>Это проекты с открытым исходным кодом, который можно найти на GitHub.</li>
78 <li>За Symfony, Laravel и Yii2 стоят многочисленные активные сообщества.</li>
78 <li>За Symfony, Laravel и Yii2 стоят многочисленные активные сообщества.</li>
79 <li>Все три фреймворка поддерживают объектно-реляционное отображение (ORM). Поэтому эти инструменты удобно использовать в парадигме объектно-ориентированного программирования.</li>
79 <li>Все три фреймворка поддерживают объектно-реляционное отображение (ORM). Поэтому эти инструменты удобно использовать в парадигме объектно-ориентированного программирования.</li>
80 <li>Перечисленные фреймворки представляют собой надёжные и безопасные инструменты для создания веб-приложений.</li>
80 <li>Перечисленные фреймворки представляют собой надёжные и безопасные инструменты для создания веб-приложений.</li>
81 </ul><p>Всё ещё не можете выбрать фреймворк? Вот тезисная информация, которая поможет определиться.</p>
81 </ul><p>Всё ещё не можете выбрать фреймворк? Вот тезисная информация, которая поможет определиться.</p>
82 <p>По Symfony:</p>
82 <p>По Symfony:</p>
83 <ul><li>есть LTS версии фреймворка;</li>
83 <ul><li>есть LTS версии фреймворка;</li>
84 <li>широкая функциональность из коробки;</li>
84 <li>широкая функциональность из коробки;</li>
85 <li>это самый стабильный фреймворк;</li>
85 <li>это самый стабильный фреймворк;</li>
86 <li>есть готовые компоненты, что позволяет использовать при создании приложений модульный подход.</li>
86 <li>есть готовые компоненты, что позволяет использовать при создании приложений модульный подход.</li>
87 </ul><p>По Yii2:</p>
87 </ul><p>По Yii2:</p>
88 <ul><li>поддерживает Ajax;</li>
88 <ul><li>поддерживает Ajax;</li>
89 <li>обеспечивает быстродействие и производительность приложений;</li>
89 <li>обеспечивает быстродействие и производительность приложений;</li>
90 <li>легко расширяемый фреймворк;</li>
90 <li>легко расширяемый фреймворк;</li>
91 <li>есть встроенный обработчик ошибок;</li>
91 <li>есть встроенный обработчик ошибок;</li>
92 <li>подходит для разработки веб-сервисов, построенных с учётом REST (RESTful web-service).</li>
92 <li>подходит для разработки веб-сервисов, построенных с учётом REST (RESTful web-service).</li>
93 </ul><p>По Laravel:</p>
93 </ul><p>По Laravel:</p>
94 <ul><li>самый популярный PHP-фреймворк;</li>
94 <ul><li>самый популярный PHP-фреймворк;</li>
95 <li>есть встроенный пакетный менеджер Composer;</li>
95 <li>есть встроенный пакетный менеджер Composer;</li>
96 <li>поддержка юнит-тестирования из коробки;</li>
96 <li>поддержка юнит-тестирования из коробки;</li>
97 <li>большое количество пакетов для расширения функциональности.</li>
97 <li>большое количество пакетов для расширения функциональности.</li>
98 </ul><h2>Заключение</h2>
98 </ul><h2>Заключение</h2>
99 <p>Symfony, Laravel и Yii2 можно назвать отличными инструментами для разработки веб-приложений. Автор оригинальной статьи предпочитает Laravel. В то же время он считает Symfony и Yii2 не менее мощными инструментами. Особенностью Symfony можно назвать развитое сообщество, а особенностью Yii - надёжность и безопасность.</p>
99 <p>Symfony, Laravel и Yii2 можно назвать отличными инструментами для разработки веб-приложений. Автор оригинальной статьи предпочитает Laravel. В то же время он считает Symfony и Yii2 не менее мощными инструментами. Особенностью Symfony можно назвать развитое сообщество, а особенностью Yii - надёжность и безопасность.</p>
100 <p>Пожалуйста, напишите в комментариях, какой PHP-фреймворк выбираете вы.</p>
100 <p>Пожалуйста, напишите в комментариях, какой PHP-фреймворк выбираете вы.</p>
101 <p><em>Адаптированный перевод статьи Michael J. Garbade<a>How to choose a PHP framework</a>. Мнение автора оригинальной публикации может отличаться от мнения администрации и сотрудников Хекслета.</em></p>
101 <p><em>Адаптированный перевод статьи Michael J. Garbade<a>How to choose a PHP framework</a>. Мнение автора оригинальной публикации может отличаться от мнения администрации и сотрудников Хекслета.</em></p>