Какой фреймворк выбрать php
При разработке любого программного продукта перед командой разработчиков прежде всего стоит задача грамотного выбора программной платформы, определяющей структуру программной системы.
Для этого нужно учесть достаточно большое количество характеристик, от «как быстро всё будет работать» до «а необходима ли нам эта фича?». И так каждый раз. Именно в моменты мозгового штурма команда сравнивает удобство фреймворка, скорость, набор фич, которые реализованы в нем или в совместимых с ним модулях.
Но какой же всё-таки лучше, быстрее и производительнее?
Разработчики постоянно проводят сравнение фреймворков, чтобы прояснить для себя этот вопрос. Например, в статье Lukasz Kujawa приведено сравнение PHP фреймворков. Одно «но» — статья за 2013 год. А ведь время идёт… Поэтому мы решили провести своё, актуальное сравнение фреймворков.
Для оценки производительности был использован PHP Framework Benchmark. Он предлагает для сравнения множество фреймворков (не только указанных выше), но автор не спешит добавлять в репозиторий новые версии проектов, что, конечно же, печально, хотя и не смертельно. При желании добавить новую версию не сложно.
Одной из основных целей данной статьи также является попытка практическим путем определить улучшения в производительности и эффективности новых версий PHP. Поэтому тестирование было проведено на РНР 5.6/7.0/7.1
Which PHP framework is right for you?
Using PHP frameworks simplifies the development process, which helps to minimize workload. Each framework has its own strengths and weaknesses, and they all vary in terms of community, documentation, and the database they support.
As such, the decision on the best framework to use depends on various factors such as security, ease of use, scalability, documentation, and more. So, start by understanding the requirements of the project or application you want to develop. Then, choose the most suitable PHP framework from this list. You can’t go wrong.
В этой статье рассматриваются три наиболее популярных PHP-фреймворка: Symfony, Laravel и Yii2. Автор сравнивает их возможности и пытается помочь читателю выбрать лучший инструмент. Статья предназначена для начинающих разработчиков, которые ещё не работали с PHP-фреймворками.
Laravel
Эта бесплатная платформа входит в число самых популярных PHP-фреймворков, благодаря своему активному развитию и простоте освоения. Новичкам, решившим осваивать его впервые, предоставляются комфортные условия поэтапного погружения в ниву вэб-девелопмента по широчайшему спектру проблем: начиная с обыкновенных рутинных заданий до сложных проектов интеграции и масштабирования приложений. С таким расширенным функционалом Laravel поможет разобраться с целым спектром задач бэкэнда даже без основательного опыта.
Особенности Laravel
Slim Framework
Это еще одна относительно популярная платформа известна как микрофреймворк PHP. Она предназначена для создания API-интерфейсов и веб-приложений, отличающихся одновременно простотой и высокой производительностью. Slim легок в освоении, обладает активной техподдержкой и развитой базой документации.
Это простой PHP-фреймворк отлично подойдёт для небольшого проекта, который не подразумевает обязательное использование других фреймворков. В функционал включены: URL маршрутизация, шифрование сеансов и cookie, HHTP кэширование и многое другое.
Особенности Slim Framework
- Максимально простой фреймворк с понятным и удобным интерфейсом.
- Быстрое подключение одним файлом.
- Сохраняет хорошую производительность, даже при работе одновременно с несколькими задачами.
- Поддерживает библиотеки для работы с PSR-7 запросами.
2. Yii
Yii — это простой, но высокопроизводительный универсальный фреймворк, основанный на компонентной структуре. Он известен благодаря высокой производительности, но, в первую очередь, он знаменит своей простотой. Этот фреймворк появился в декабре 2008 года. Он позволяет использовать код сторонних разработчиков, а имеющийся в нём генератор кода Gii позволяет быстро создавать базовые структуры, на основе которых можно строить собственные решения.
Его создатели очень серьёзно подошли к вопросам безопасности. В частности, в него встроены механизмы хеширования паролей, основанные на bcrypt, и средства шифрования. Этот фреймворк отлично подойдёт тем, кто хочет нанять разработчика из Индии для работы над проектами из сфер электронной коммерции, создания CMS или форумов.
5. CakePHP
CakePHP — фреймворк, существующий с 2005 года, известен теми удобствами, которые он даёт веб-разработчикам. Он нуждается в весьма скромных настройках, не требует пользоваться XML- или YAML-файлами. У него есть собственная ORM, что выгодно отличает его от других подобных инструментов. В плане безопасности у него тоже всё хорошо, в частности, в нём имеется система защиты от CSRF-атак.
Его встроенная подсистема, называемая «Components and Helpers», облегчает работу программистов, избавляя от необходимости делать многое самостоятельно, то же самое можно сказать и о наборе его библиотек, реализующих много полезных возможностей. Благодаря этому его можно назвать оправданным выбором для веб-проектов, в которых реализован какой-то редкий или нестандартный функционал.
CakePHP был одним из самых первых PHP-фреймворков, поддерживающих MVC, ворвавшихся в мир веб-разработки. Он используется в крупных известных проектах вроде 10 Fast Fingers, Printivo, Visit NC и Coconala.
Производительность (throughput)
Применительно к нашей ситуации, характеристика throughput измеряется в количестве запросов, которые наш фреймворк может обработать в течении секунды. Следовательно, чем выше это число, тем более производительно наше приложение, поскольку оно сможет корректно обрабатывать запросы большого количества пользователей.
Мы получили следующие результаты (запросы в секунду):
php 5.6 | php 7.0 | php 7.1 | |
---|---|---|---|
phalcon-3.1.2 | 5058.00 | 5130.00 | 7535.00 |
ci-3.0 | 2943.55 | 4116.31 | 4998.05 |
slim-3.0 | 2074.59 | 3143.94 | 3681.00 |
yii-2.0 | 1256.31 | 2276.37 | 2664.61 |
silex-1.3 | 1401.92 | 2263.90 | 2576.22 |
lumen-5.1 | 1316.46 | 2384.24 | 2741.81 |
ze-1.0 | 1181.14 | 1989.99 | 1741.81 |
phpixie-3.2 | 898.63 | 1677.15 | 1896.23 |
fuel-1.8 | 1044.77 | 1646.67 | 1770.13 |
bluz-7.3.1 | — * | 1774.00 | 1890.00 |
zf-2.5 | 198.66 | 623.71 | 739.12 |
zf-3.0 | 447.88 | 1012.57 | 1197.26 |
symfony-2.7 | 360.03 | 873.40 | 989.57 |
symfony-3.0 | 372.19 | 853.51 | 1022.28 |
laravel-5.3 | 258.62 | 346.25 | 625.99 |
laravel-5.4 | 219.82 | 413.49 | 600.42 |
* — bluz-7.3.1 не поддерживает php 5.6
Для наглядности построили графики для каждой версии PHP:
PHP5.6:
PHP7.0:
PHP7.1:
Сводная накопительная диаграмма (по фреймворкам):
Что выбрать?
Вполне нормально то, что у того, кто пытается выбрать PHP-фреймворк для своего проекта, буквально разбегаются глаза, так как все фреймворки, на первый взгляд, кажутся именно тем, что ему нужно. Выбирая фреймворк, стоит помнить о том, что все они предоставляют базовую структуру веб-приложения, помогающую ускорить разработку, но при этом различаются в плане документации, сообщества, безопасности, масштабируемости, поддержки баз данных, лёгкости использования. В результате у каждого из PHP-фреймворков есть собственные сильные и слабые стороны. Поэтому, выбирая фреймворк, чётко сформулируйте требования к проекту, оцените его масштабы и примите взвешенное решение, посоветовавшись с теми, кто хорошо разбирается в PHP-фреймворках.
PHP, or hypertext preprocessor, is an open-source server-side scripting language. It’s extremely popular, too — almost 80% of all websites were using PHP as of October 2018.
But how do you know which PHP framework is right for you?
3. Symfony
The Symfony framework was launched in 2005, and although it’s been in existence for much longer than other frameworks on this list, it’s a reliable and mature platform. Symfony is an extensive PHP MVC framework and the only framework known to follow PHP and web standards to the tee.
Reasons to use Symfony
- Symfony is the perfect choice for developing large-scale enterprise projects. It’s easy to install and configure on most platforms.
- One of its key features? It’s reusable PHP components. It also boasts database engine–independence, and it’s stable, complies with most web best practices and design patterns, and allows for integration with other vendor libraries.
- Symfony is also highly flexible and can integrate with bigger projects like Drupal. Symfony and Laravel have many common and unique features, which makes it difficult to say which of these frameworks is better.
However, while Laravel focuses more on simplicity and delivering value, even for developers who are not advanced, Symfony targets advanced developers and is a bit harder to start with. In addition, the Symfony security mechanism is a bit difficult to use. And, because it lets developers “do it all,” it can be slower than other frameworks.
Примечание. Тестирование при помощи ab — с чем мы столкнулись
«А что со slim и phpixie» — этот вопрос подтолкнул на расследование поведения утилиты ab при взаимодействии с этими фреймворками.
Выполним тест отдельно для Slim-3.0:
Что-то не так — количество запросов в секунду всего 0.4 (!)
Дело было в Keep Alive соединении, подробнее можно узнать тут.
If a request is made with «Connection: close» this indicates that once the request has been made the server needs to close the connection. And so for each request a new TCP connection will be established.
Таким образом, тест для Slim должен выглядеть так:
8. FuelPHP
FuelPHP — это MVC-фреймворк, вышедший в 2011 году и поддерживаемый силами сообщества разработчиков. Он известен своей гибкостью. В нём реализована особая версия MVC — HMVC (Hierarchical Model-View-Controller — иерархическая версия архитектуры модель-вид-контроллер). HMVC, в отличие от MVC, поощряет многократное использование кода. FuelPHP, кроме того, предлагает разработчикам отличную расширяемость, модульность, хорошую систему организации кода. В результате этот фреймворк позволяет программистам экономить время и бережно расходует системные ресурсы.
FuelPHP позволяет создавать веб-проекты разных масштабов. Он отличается надёжной и хорошо продуманной системой безопасности с поддержкой Output Encoding, с защитой от CSRF- и XSS-атак.
В нём имеется уникальная утилита командной строки, но этим его полезные возможности не ограничиваются. Среди них — весьма продвинутая встроенная ORM. Среди других его возможностей — поддержка разработки RESTful-API, хорошая система маршрутизации, встроенные механизмы защиты от уязвимостей. Среди известных веб-проектов, в которых используется FuelPHP можно отметить Front Desk — систему управления имуществом, используемую в гостиничном бизнесе.
CodeIgniter
Этот фреймворк с открытым кодом отличается элегантностью кода и простотой написания. Легкость в обучении и свобода оформления кода предоставляют отличные условия для быстрого старта проекта. CodeIgniter отлично подходит для создания PHP-приложений малого размера, которые можно легко масштабировать.
Особенности CodeIgniter
- Поддержка архитектуры MVC, а так же БД MySQL, PostgreSQL, MSSQL, SQLite, Oracle..
- Возможность добавления сторонних плагинов для расширения функционала приложения.
- Фреймворк обладает предустановленными библиотеками с обширнейшим функционалом.
- Возможность использовать сторонние и самописные библиотеки (с помощью менеджера Sparks) позволяет системе быстро масштабироваться.
- Есть возможность установки дополнений поддержки модульности (HMVC).
- CodeIgniter располагает подробной документацией по платформе, что позволит новичкам быстрее его освоить.
4. Symfony
Symfony выгодно отличается от других PHP-фреймворков надёжностью и зрелостью. Этот фреймворк появился давно, в 2005 году, то есть — существует гораздо дольше, чем большинство других рассматриваемых нами инструментов. Он популярен благодаря соответствию веб-стандартам и шаблонам проектирования PHP.
Он включает в себя встроенную систему тестирования и основан на обширном MVC-фреймворке. Это делает его идеальным выбором для крупномасштабных веб-проектов, создаваемых на уровне организаций. Он, в частности, поддерживает работу с различными базами данных.
Если вы собираетесь нанять веб-разработчика в Индии на Symfony-проект, вам стоит поинтересоваться опытом разработчика в сфере применения этого фреймворка и его предыдущими работами. Дело в том, что этот фреймворк отличается достаточно крутой кривой обучения. Но при этом любой, кто искусно владеет Symfony, может называться настоящим мастером веб-разработки.
Достоинства PHP-фреймворков
- Производительность. Фреймворки ускоряют разработку. Например, PHP-фреймворк избавляет вас от необходимости писать запросы к базам данных. В фреймворках реализованы базовые функции CRUD, которые необходимы для работы с базами данных.
- Масштабируемость. Написанные на фреймворках приложения легко масштабируются.
- Удобство. Код фреймворков лаконичный, поэтому с ним просто работать. Поддерживать легче проект на фреймворке, чем на нативном PHP.
- Простота. В PHP-фреймворках используются шаблоны проектирования (например, MVC). Это значительно упрощает разработку, делая процесс быстрее.
- Безопасность. Приложения на фреймворках лучше защищены, чем приложения на чистом PHP.
- Экономичность. В фреймворках реализован принцип DRY. Это позволяет разработчикам писать меньше кода.
2. CodeIgniter
Known for its small footprint (it’s only about 2 MB in size, including the documentation) CodeIgniter is a PHP framework suitable for developing dynamic websites. It offers numerous prebuilt modules that help with constructing robust and reusable components.
Reasons to use CodeIgniter
CodeIgniter is a lightweight and straightforward PHP framework that’s hassle-free to install, unlike other frameworks. Due to a simple setup process and highly illustrated documentation, it’s ideal for beginners.
Key features include an MVC architecture, top-notch error handling, inbuilt security tools, and simple and excellent documentation. In addition, it creates scalable apps.
Compared with other frameworks, CodeIgniter is considerably faster. Since it also offers solid performance, it’s a good choice when you want to develop lightweight applications to run on modest servers. One caveat: CodeIgniter releases are a bit irregular, so the framework isn’t a great option for an application that requires high-level security.
Что такое фреймворк
Фреймворк (framework, «каркас», «конструкция») — это динамически пополняемая библиотека языка программирования, в которой собраны его базовые модули. Фреймворки создаются для упрощения процессов разработки приложений, сайтов, сервисов. Чтобы не писать модуль в приложении с нуля, гораздо проще обратиться к готовым шаблонам фреймворков, которые и формируют рабочую среду разработчика.
Фреймворки есть у каждого языка программирования — Java, JavaScript, Python, Ruby, PHP. Но именно PHP-фреймворки занимают почётное место главного инструмента бекэнд-разработки.
Время выполнения
Время выполнения — время, затрачиваемое системой для выполнения поставленной задачи. Измеряется от начала выполнения задачи до выдачи результата системой.
Мы рассмотрели, сколько запросов в секунду может обработать фреймворк, сколько памяти он при этом занимает. Теперь рассмотрим, сколько нам нужно ожидать, чтобы получить ответ от сервера. Чем ниже это значение, тем лучше для нас, да и для нервной системы клиента нашего приложения.
Время приведено в миллисекундах (ms):
php 5.6 | php 7.0 | php 7.1 | |
---|---|---|---|
phalcon-3.1.2 | 1.300 | 1.470 | 1.080 |
ci-3.0 | 0.996 | 0.818 | 1.007 |
slim-3.0 | 1.530 | 1.228 | 0.662 |
yii-2.0 | 1.478 | 1.410 | 1.639 |
silex-1.3 | 4.657 | 1.625 | 2.681 |
lumen-5.1 | 2.121 | 1.829 | 1.228 |
ze-1.0 | 2.629 | 2.069 | 1.528 |
phpixie-3.2 | 9.329 | 4.757 | 1.911 |
fuel-1.8 | 3.283 | 2.684 | 1.425 |
bluz-7.3.1 | — * | 1.619 | 1.921 |
zf-2.5 | 22.042 | 5.011 | 3.998 |
zf-3.0 | 12.680 | 2.506 | 2.989 |
symfony-2.7 | 6.529 | 3.902 | 2.384 |
symfony-3.0 | 9.335 | 3.987 | 2.820 |
laravel-5.3 | 19.885 | 4.840 | 2.622 |
laravel-5.4 | 19.561 | 4.758 | 3.940 |
PHP 5.6:
PHP 7.0:
PHP 7.1:
Сводная накопительная диаграмма (по фреймворкам):
9. Slim
Slim — это, что отражено в его названии, микро-фреймворк, отличающийся компактностью и скоростью. Причина таких его характеристик кроется в том, что он совершенно независим от стороннего кода. Он был создан в 2010 году, на данный момент самая свежая его версия — это 4.5.0.
Фреймворк Slim предназначен для маленьких но мощных веб-приложений и API.
Yii
Обектно-ориентированный PHP-фреймворк Yii считается лидером по способности обеспечить производительность и часто выбирается для высоконагруженных приложений. С момента первого релиза в 2008 году, фреймворк непрерывно развивался в течении многих лет. Yii часто попадает в топ фреймворков PHP, благодаря сильно развитому сообществу пользователей, значительная часть которых — русскоговорящие.
Особенности Yii
- Гибкие механизмы генерирования исходного кода.
- Полноценная реализация парадигмы MVC.
- Интерфейсы работы с БД — DAO и ActiveRecord.
- Есть функция полного или частичного кеширования страниц.
- Присутствует возможность оперативного моделирования прототипа проекта для предпродажной демонстрации заказчикам.
- Как и Laravel, поддерживает установку с помощью пакетного менеджера Composer.
- Быстрая генерация кода с помощью браузерного элемента Gii.
PHPixie
Позиционируется как современный, быстрый и безопасный PHP-фреймворк с архитектурой HMVC. Первый выпуск был представлен в 2012 году. Он был предназначен для создания высокопроизводительных платформ под сайты формата read-only («только для чтения»).
К функциональным возможностям PHPixie относят реализацию валидации ввода, возможности авторизации, аутентификацию и кэширование. Из минусов можно отметить недостаточную развитость поддержки и малочисленность сообщества.
Особенности PHPixie
- Лёгкий движок, позволяющий обеспечить высокую скорость приложений.
- Основан на стандартах PSR-2 и PSR-4. Поддерживает библиотеки для работы с PSR-7 запросами.
- Шаблонизатор с поддержкой наследования и блоков.
- Удобный ORM, работающий на основе разбивки логики запросов.
- Большая база документации и хорошая реализация API.
7. Phalcon
A full-stack PHP framework that employs the MVC web architecture design pattern, Phalcon was originally written in C and C++ and released in 2012. Since it’s delivered as a C-extension, you don’t have to worry about learning the C programming language.
Reasons to use Phalcon
- Phalcon is easy to install and suitable for creating highly configurable web applications that are in line with enterprise development guidelines.
- Key features include increased execution speed, asset management, a universal autoloader, and top security and caching.
- Unlike other frameworks, Phalcon optimizes performance due to its efficient memory utilization. If you’re looking to create a blazing fast website, give Phalcon a try.
- On the negative side, Phalcon developers are a bit slow to patch bugs, which may not jive with today’s need for high levels of security.
Методика тестирования и тестовый стенд
Машина, на которой производилось тестирование, обладает следующими характеристиками:
Operation system: Linux Mint 17 Cinnamon 64-bit
Cinnamin Version 2.2.16
Linux Kernel: 3.13.0-24-generic
Processor: Intel Core i3-4160 CPU 3.60 Ghz X 2
Memory: 8 GB
Server version: Apache/2.4.7 (ubuntu)
Server build: Jul 15 2016
php 7.1 / php7.0 / php5.6
Немного о структуре самого php-framework-benchmark:
/benchmarks — содержит bash-скрипты, отвечающие за сбор информации о количестве запросов в секунду (при помощи утилиты ab), количестве информации, сколько времени было потрачено и сколько файлов вызывалось из файла «точки старта».
/lib — директория, в которой находятся файлы, отвечающие за обработку полученной информации после вывода страницы “Hello world”, вывод таблиц с результатами и построение диаграмм.
/output — директория, в которую добавляются логи после выполнения тестирования. Здесь находится по два файла для каждого протестированного файла: .ab.log — лог после работы утилиты ab, и .output — содержит информацию, которая была выведена на экран (обычно это hello world и данные по памяти, времени выполнения, использовавшимся файлам).
Остальные папки — это заготовки фреймов, в которые уже добавлен один контроллер, который вернет строку “hello world” при обращении по URI, составленному по правилам обращения к данному фреймворку.
Для запуска теста сначала нужно настроить фреймворки. Рассмотрим два подхода.
Команда bash setup.sh настроит те фремворки, которые описаны в файле list.sh. Вы можете его редактировать: добавлять и удалять папки для тестирования. То есть конфигурировать так, как вам необходимо.
Командой bash setup.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/ вы можете установить какие-то отдельные фреймворки, задав их параметрами к команде. В некоторых случаях это удобно, но мы использовали первый подход.
После произведенной настройки фреймворков, мы запустили тестирование при помощи bash benchmark.sh .
По окончании работы в терминале появилась таблица со списком протестированных фреймворков, количеством запросов в секунду, относительным значением, занимаемой памятью, а также относительными значениями этих показателей.
Как вы понимаете, необходимо было произвести настройку Apache и заставить его смотреть в папку с фреймом. Всё это описано в readme, поэтому вопросов не возникает.
1. Laravel
Introduced in 2011, Laravel has become the most popular free, open-source PHP framework in the world. Why? Because it can handle complex web applications securely, at a considerably faster pace than other frameworks. Laravel simplifies the development process by easing common tasks such as routing, sessions, caching, and authentication.
Reasons to use Laravel
- Laravel is suitable when developing applications with complex backend requirements, whether small or large. Installing Laravel has been made easier by the introduction of Homestead, a prepackaged, all-in-one vagrant box.
- It’s a PHP framework full of features that will help you customize complex apps. Among these: seamless data migration, MVC architecture support, security, routing, view template engine, and authentication, among many others.
- Laravel is highly expressive, and its speed and security are in line with expectations for a modern web application. For developers who want to build B2B or enterprise websites that will evolve with changing web trends, Laravel is the way to go.
5. Yii
The Yii framework — which stands for Yes, it is! — is, in fact, simple and evolutionary. It’s a high-performance, component-based PHP framework for developing modern web applications. Yii is suitable for all kinds of web apps. For this reason, it’s a universal web programming framework.
Reasons to use Yii
- Yii has an easy installation process. Furthermore, its robust security features make the framework suitable for highly secure endeavors such as e-commerce projects, portals, CMS, forums, and many others.
- It boasts excellent speed and performance, it’s highly extensible, and it lets developers avoid the complexity of writing repetitive SQL statements, as they can model the database data in terms of objects.
- Yii has a core developer team and experts that contribute to its development. With a massive community using it, you can post issues on Yii forums and get help.
- Yii is extremely extensible, and you can customize nearly every piece of the core’s code. However, if it’s your first time using it, be prepared for a steep learning curve.
Заключение
Как и стоило ожидать безоговорочным лидером по производительности (но не скорости разработки) является Phalcon. Второе место, — а на самом деле первое среди PHP-фреймворков (а не C, на котором написан исходный код Phalcon) — занимает CodeIgniter 3!
Конечно же, не стоит забывать, что каждому инструменту своё предназначение. Если вы выбираете небольшой и легкий фреймворк и собираетесь написать на нём что-то отличное от простейших приложений или REST API, то, скорее всего, вы столкнётесь с проблемами при расширении функционала. И наоборот — избыточность полнофункциональных, больших фреймворков повлечёт за собой финансовые издержки на содержание хостинга даже для элементарных приложений под большой нагрузкой.
Это тестирование проводилось для того, чтобы убедить/рассказать/укрепить позицию языка РНР версий 7.0 и 7.1 в вашем сознании и в будущих проектах, донести информацию о том, что производительность действительно возросла.
Рефакторинг внутренних структур данных и добавление дополнительного этапа перед компиляцией кода в виде абстрактного синтаксического дерева — Abstract Syntax Tree (AST), — привели к превосходной производительности и более эффективному распределению памяти. Результаты сами по себе выглядят многообещающе: тесты, выполненные на реальных приложениях, показывают, что PHP 7 в среднем вдвое быстрее PHP 5.6, а также использует на 50% меньше памяти во время обработки запросов, что делает PHP 7 сильным соперником для компилятора HHVM JIT от Facebook.
Тесты полностью подтверждают и вдвое ускорившуюся обработку запроса в РНР7, и уменьшенное количество используемой памяти.
Десятки лет PHP был самым любимым языком программирования в мире. И это не случайно. PHP-разработка ведётся быстро, получающиеся в итоге проекты отличаются высоким уровнем безопасности, их легко поддерживать. Кроме того, в ходе разработки PHP-проектов приходится писать не слишком много собственного кода благодаря тому, что существует огромное количество PHP-библиотек. В наши дни PHP используется приблизительно на 79% веб-сайтов.
Разработчикам в деле создания их замечательных проектов помогают различные PHP-фреймворки. Но что это за фреймворки? Почему программисты выбирают именно их? Сейчас мы попытаемся в этом разобраться и заодно выясним то, какие именно фреймворки лучше всего подходят для веб-проектов различных видов.
Зачем нужен PHP-фреймворк
PHP — один из самых популярных и востребованных языков программирования. Его активно используют крупные проекты, например, Facebook и «ВКонтакте». На PHP написаны популярные системы управления контентом (CMS), в том числе WordPress. На этом движке работает около трети всех сайтов в интернете и около 60 % сайтов на CMS.
PHP развивается, а версия 7 сделала этот язык стабильным. В таком случае, зачем нужны фреймворки и почему их часто используют вместо нативного языка? Вот несколько причин:
- Фреймворки ускоряют разработку. Например, PHP-фреймворк избавляет вас от необходимости писать запросы к базам данных. В фреймворках реализованы базовые функции CRUD, которые необходимы для работы с базами данных.
- Написанные на фреймворках приложения легко масштабируются.
- Поддерживать легче проект на фреймворке, чем на нативном PHP. Код фреймворков лаконичный, поэтому с ним просто работать.
- В PHP-фреймворках используется модель MVC. Она упрощает разработку.
- Приложения на фреймворках лучше защищены, чем приложения на чистом PHP.
- В фреймворках реализован принцип DRY. Это позволяет разработчикам писать меньше кода.
Нативный PHP позволяет делать приложения. Но перечисленных выше преимуществ достаточно, чтобы обратить внимание на фреймворки.
Полезная информация Почему Django — лучший фреймворк для разработки сайтов: статья о характеристиках и особенностях популярного веб-фреймворка.
Symfony
Помимо звучного названия, этот фреймворк отличается гибким функционалом, основанном на модульном подходе к построению системы. Это позволяет выбирать необходимые функции языка PHP либо оперировать всей инфраструктурой целиком.
Этот фреймворк будет сбалансированным решением для разработчика, ценящего модульность и преимущество использования отдельных компонентов. Веб-приложениям на Symfony характерна внушительная производительность, поэтому их используют для решения сложных задач уровня предприятия.
Особенности Symfony
- Собственный обработчик шаблонов Twig позволяет создавать чистый код и дополнять функционал PHP.
- Можно установить с помощью Composer.
- Большое количество доступных для установки расширений.
- Поддержка дополнительных форматов: PHP, YAML и XML.
- Совместимость с Codeception облегчает написание тестов.
- Использование реляционного проектора Doctrine позволяет работать на более продвинутом уровне.
- Стал основой для многих популярных CMS (Magento, Drupal, Opencart).
- Активное сообщество пользовательской поддержки.
Результаты тестирования фреймворков
Каждый раздел имеет структуру, состоящую из двух форм представления результатов.
Первая форма — это наглядный тип представления. Каждая характеристика содержит 4 диаграммы. Каждая диаграмма отображает сравнение фреймворков между собой, плюс накопительная диаграмма. Она была построена при использовании определенной версии РНР. Таким образом можно проследить эволюцию улучшений в 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 используются готовые компоненты. Это ускоряет разработку.
6. Zend Framework
Zend Framework — это ещё один фреймворк, в основе которого лежат компоненты. Его ещё называют «фреймворком промежуточного уровня». Он появился в 2006 году, сейчас самой современной является его версия 3.0.0. В нём применяется объектно-ориентированный MVC-подход, который известен тем, что помогает разработчикам заниматься своим делом, ни на что не отвлекаясь.
Он позволяет загружать необходимые компоненты в виде отдельных библиотек. При этом можно, без особых сложностей, интегрировать в проекты и внешние библиотеки. При его использовании крайне просто организовать многократное использование кода.
Правда, учитывая сложность этой платформы, с ней может быть непросто разобраться, особенно тем, кто переходит на Zend Framework с Laravel или Symfony. К этому фреймворку обычно прибегают лишь опытные разработчики.
Fuel PHP
Это гибкий и полнофункциональный PHP-фреймворк, который начали разрабатывать в 2011, а официальный запуск произвели в 2014 году. Отличается тем, что на платформе используется собственная архитектура MVC, называющаяся иерархической — HMVC.
По фреймворку представлена подробная документация, которая станет подспорьем для быстрого начала разработки.
Особенности Fuel PHP
- Многофункциональная, компонентная, объектно-ориентированная платформа с MVC архитектурой.
- Присутствует собственная иерархическая архитектура HMVC.
- Маршрутизация ссылок с повышенной защитой от уязвимостей и кэширование.
- Поддержка PHP версии 5.4 и выше.
- Собственная утилита командной строки.
Заключение
Symfony, Laravel и Yii2 можно назвать отличными инструментами для разработки веб-приложений. Автор оригинальной статьи предпочитает Laravel. В то же время он считает Symfony и Yii2 не менее мощными инструментами. Особенностью Symfony можно назвать развитое сообщество, а особенностью Yii — надёжность и безопасность.
Пожалуйста, напишите в комментариях, какой PHP-фреймворк выбираете вы.
Адаптированный перевод статьи Michael J. Garbade How to choose a PHP framework. Мнение автора оригинальной публикации может отличаться от мнения администрации и сотрудников Хекслета.
Язык PHP (Hypertext PreProcessor, «препроцессор гипертекста») неслучайно называют самым мощным и популярным инструментом веб-разработки. Благодаря лёгкости в освоении, свободному распространению ПО и высокой адаптивности, он применяется сегодня для производства любых программных продуктов.
PHP используется в 80% интернет-сайтов Всемирной сети. В том числе, в таких мега-проектах, как Facebook, Wikipedia и Google. На нём основано больше половины современных систем управления контентом (CMS), включая популярнейшую WordPress.
Полноценную работу с PHP сложно представить без одного из основных инструментов PHP-разработки — фреймворков. С этой технологией эффективность и скорость создания сайтов и приложений увеличивается в разы.
В данном обзоре мы кратко рассмотрим общие принципы выбора платформы и расскажем про лучшие PHP-фреймворки.
Вывод
PHP-фреймворк — идеальный инструмент для создания API и полнофункциональных веб-приложений, работающих на стороне сервера. Они позволяют сэкономить время на «ручном» программировании при помощи готовых шаблонов и решений.
Выбор в пользу того или иного фреймворка будет зависеть от сложности проекта. Чем он масштабнее, тем больше ресурсов и технологий требуется. Сложные задачи подразумевают тщательный предварительный анализ функционала PHP-платформы, ее совместимости по версиям PHP, поддерживаемым базам данных, ресурсоемкости, масштабируемости и критериям производительности. Для менее крупных проектов можно выбирать универсальные решения с оптимальным балансом основных компонентов и отсутствию требовательности к ресурсам.
А какой PHP-фраймворк используете вы? За какие качества вы его выбрали? Делитесь в комментариях ниже!
Чтобы фреймворк работал на пределе своих возможностей — выбирайте быстрый и надёжный VPS от Eternakhost.
Phalcon PHP
Полнофункциональная PHP-инфраструктура, в которой реализованы шаблоны проектирования веб-приложений с использованием архитектуры МVC. С момента появления в 2012 году, Phalcon был написан на языке С и С++. В данное время поддерживается и версия, переписанная на Zephir.
Функционал фреймворка построен на оперировании PHP-классами, что позволяет достигать самых разнообразных целей в бекэнд-разработке. Документация по представлена как пошаговое руководство, но гораздо хуже стандартизирована.
Особенности Phalcon
- Основа всех компонентов — язык программирования C.
- Взаимодействие с БД основано на технологии ORM.
- Есть поддержка наиболее распространённых ОС — Linux, Windows, Mac.
- Высокое быстрродействие, благодаря прямому взаимодействию фреймворка с внутренним структурам PHP.
- Высокая производительность при минимальных ресурсных затратах и необходимых файловых операциях.
- Стал основой для других популярных фреймворков — Kohana и Rain Framework.
4. CakePHP
If you’re looking for a toolkit that’s simple and elegant, look no further. CakePHP will help you develop visually impressive, feature-loaded websites. In addition, CakePHP is one of the easiest frameworks to learn, especially because of its CRUD (create, read, update, and delete) framework. CakePHP hit the market in the early 2000s, and since then it’s gained better performance and many new components.
Reasons to use CakePHP
- CakePHP is simple and easy to install, as you only need a web server and a copy of the framework.
- It makes a good choice for commercial applications due to security features that include SQL injection prevention, input validation, cross-site request forgery (CSRF) protection, and cross-site scripting (XSS) protection.
- Some key features include a modern framework, fast builds, proper class inheritance, validation, and security. In addition, CakePHP provides great documentation, many support portals, and premium support through Cake Development Corporation.
The top 10 PHP frameworks
Here’s a list of the best PHP frameworks, based on popularity and ability to facilitate application development.
10. Slim
Slim is another popular PHP micro-framework that helps developers quickly create simple but powerful web applications and APIs.
Reasons to use Slim
Подключаемые файлы
Характеристика, отвечающая за количество подключаемых файлов, которые описаны в файле «точки входа» фреймворка. Понятно, что система тратит какое-то время на поиск и подключение. Следовательно, чем меньше файлов, тем быстрее будет осуществляться первый запуск приложения, так как обычно в последующие разы фреймворк работает с кэшем, что ускоряет работу:
phalcon-3.1.2 | 5 |
ci-3.0 | 26 |
slim-3.0 | 53 |
yii-2.0 | 46 |
silex-1.3 | 63 |
lumen-5.1 | 37 |
ze-1.0 | 68 |
phpixie-3.2 | 163 |
fuel-1.8 | 53 |
bluz-7.3.1 | 95 |
zf-2.5 | 222 |
zf-3.0 | 188 |
symfony-2.7 | 110 |
symfony-3.0 | 192 |
laravel-5.3 | 38 |
laravel-5.4 | 176 |
Разница в количестве подключаемых файлов между Laravel 5.3 и Laravel 5.4 может показаться странной и дать повод к обсуждениям, спорам и т.п. Спешим разъяснить ситуацию. Как вы знаете, с помощью команды
php artisan optimize --force
1. Laravel
Laravel — это бесплатный опенсорсный PHP-фреймворк, который появился в 2011 году. С тех пор он смог стать тем фреймворком, который чаще всего выбирают веб-разработчики. Одна из главных причин этого заключается в том, что Laravel позволяет разрабатывать сложные веб-приложения проще, быстрее и безопаснее, чем любые другие фреймворки.
Использование Laravel, кроме того, облегчает решение множества рутинных задач, что ведёт к тому, что разработчикам приходится писать, в соответствующих ситуациях, меньше кода. Среди таких задач — маршрутизация, кеширование, авторизация, аутентификация. Благодаря использованию этого фреймворка упрощаются такие задачи, как проверка электронных адресов пользователей, хеширование и сброс паролей. Laravel выбирают, в основном, разработчики B2B-решений.
А после появления Homestead — заранее подготовленного контейнера Vagrant, установка Laravel стала до крайности простой. Самая свежая на данный момент версия Laravel — 8 — вышла в сентябре 2020 года.
7. Phalcon
Phalcon — это особенный PHP-фреймворк, исходный код которого написан на языке C. Это может показаться странным, но благодаря такому подходу данный фреймворк можно назвать самым быстрым проектом такого рода. Работа с этим фреймворком не означает необходимости иметь опыт C-разработки. Программист, выбирающий Phalcon, может иметь дело лишь с классами и пространствами имён PHP, генерируемыми фреймворком.
Phalcon — это высокопроизводительный фреймворк, размещаемый в памяти и охватывающий все уровни веб-разработки, который появился в конце 2012 года. То, что в его основе лежит скомпилированный код, очень хорошо сказывается на его производительности. Даже применяемая в нём система шаблонизации, Volt, известна своей высокой скоростью. В нём имеются вспомогательные классы.
Phalcon, помимо скорости, предлагает разработчику хорошо организованную систему управления ресурсами и универсальную автоматизированную систему загрузки ресурсов. В результате этот фреймворк идеально подойдёт тому, кто стремится создавать чрезвычайно быстрые веб-проекты.
6. Zend Framework
The Zend framework is a complete object-oriented framework, and the fact that it uses features such as interfaces and inheritance makes it extendable. It was built on the agile methodology, which helps you to deliver high-quality applications to enterprise clients. Zend is highly customizable and abides by PHP best practices—an important point for developers who want to add project-specific functionalities.
Reasons to use Zend
- Zend framework is an excellent fit for complex, enterprise-level projects. It’s the preferred framework for large IT departments and banks.
- Some key features include MVC components, simple cloud API, data encryption, and session management.
- It can integrate with external libraries, and you can use only the components you want. The Zend framework comes with extremely good documentation and has a large community base. However, if you’re a mobile app builder, get ready for a steep learning curve.
Занимаемая память (peak memory)
Эта характеристика (в мегабайтах) отвечает за количество занимаемой фреймворком памяти при выполнении поставленной перед ним задачи. Чем меньше данное число, тем лучше для нас и для сервера:
php 5.6 | php 7.0 | php 7.1 | |
---|---|---|---|
phalcon-3.1.2 | 0.27 | 0.38 | 0.37 |
ci-3.0 | 0.42 | 0.38 | 0.38 |
slim-3.0 | 0.61 | 0.55 | 0.55 |
yii-2.0 | 1.31 | 0.91 | 0.91 |
silex-1.3 | 0.74 | 0.65 | 0.65 |
lumen-5.1 | 0.80 | 0.63 | 0.63 |
ze-1.0 | 0.79 | 0.56 | 0.56 |
phpixie-3.2 | 1.22 | 0.82 | 0.82 |
fuel-1.8 | 0.7 | 0.6 | 0.6 |
bluz-7.3.1 | — * | 0.69 | 0.69 |
zf-2.5 | 3.06 | 1.34 | 1.34 |
zf-3.0 | 2.12 | 1.09 | 1.08 |
symfony-2.7 | 3.11 | 1.41 | 1.42 |
symfony-3.0 | 2.86 | 1.30 | 1.32 |
laravel-5.3 | 2.91 | 2.04 | 2.04 |
laravel-5.4 | 3.04 | 1.45 | 1.49 |
* — bluz-7.3.1 не поддерживает php 5.6
PHP 5.6:
PHP 7.0:
PHP 7.1:
Сводная накопительная диаграмма (по фреймворкам):
Стоит ли обновляться?
Сводные данные по версиям более чем наглядно показывают, какой произойдет прирост производительности и эффективности использования ресурсов при переходе (или изначальном выборе) на новую версию PHP.
При переходе с PHP 5.6 на PHP 7.0 средний прирост производительности составил почти +90%, при этом минимальный прирост производительности составил +33% для Laravel 5.3, а максимум — >200% для Zend Framework 2.5.
Переход с версии 7.0 на 7.1 уже не так шокирует, но всё же в среднем даёт почти 20% прирост производительности.
Сведя все полученные данные по производительности различных версий PHP, получим вот такие «матрасы»:
Забавный факт: Laravel 5.3 показал наименьший прирост производительности при миграции с PHP 5.6 на PHP 7.0, но при этом наибольший прирост при миграции с версии 7.0 на версию 7.1, и как итог — производительность Laravel 5.3 и 5.4 на PHP 7.1 практически одинакова.
Потребление памяти тоже оптимизировали, так что переход с PHP 5.6 на PHP 7.0 позволит вашему приложению потреблять на 30% меньшем памяти.
Обновление с версии 7.0 до версии 7.1 практически не даёт прироста, а в последних Symfony и Laravel так и вовсе уходим в «минус», потому что они начинают чуть больше «кушать».
Осталось ещё посмотреть на время выполнения, и да, тут тоже всё отлично:
- переезд с PHP 5.6 на PHP 7.0 подарит вам ускорение в среднем на 44%.
- переезд с PHP 7.0 на PHP 7.1 подарит вам ускорение ещё на 14%.
Zend Framework
Гибкая методология делает возможным разработку высококачественных корпоративных веб-приложений. Один из основных минусов PHP-фреймворка — сложность в изучении, вероятно отпугнет новичков. Однако, преимущества объектно-ориентированного способа программирования и расширяемая функциональность с интеграцией внешних библиотек стоят того, чтобы уделить изучению Zend более пристальное внимание.
Особенности Zend Framework
- Многофункциональная, компонентная, объектно-ориентированная платформа с MVC архитектурой.
- Полная E_STRICT-совместимость всех компонентов фреймворка.
- Много встроенных библиотек, позволяющих легко взаимодействовать со сторонними приложениями.
- Несвязанные компоненты можно повторно использовать в других приложениях.
- Высокая степень интернационализации.
Как выбрать
Какой именно PHP-фреймворк окажется самым подходящим зависит от масштабов и целей проекта. При выборе подобной платформы следует обратить внимание на ряд базовых показателей.
- Насколько широк и гибок функционал фреймворка. Есть ли в нем всё, что может потребоваться для текущего проекта.
- Легко лиосвоить фреймворк. С учётом уровня штатного (фриланс) разработчика.
- Скорость и современность — насколько фреймворк ориентирован на прогрессивные методы программирования. Например, есть ли поддержка объектно-ориентированного метода.
- Как масштабируется проект, созданный на фреймворке. Есть ли возможность написать структурируемый код для масштабируемых приложений.
- Как часто выпускаются обновления и имеется ли у фреймворка активно действующее сообщество.
- Существует ли у фреймворка сервис гарантированной долгосрочной поддержки релизов (LTS).
- Есть ли поддержка архитектуры MVC (Model ViewController / Модель-представление-контроллер).
Шаблонизаторы
Шаблонизаторы ускоряют разработку и упрощают создание фронтенда приложения. Например, с помощью шаблонизаторов решается задача автоматического экранирования HTML.
Symfony
В Symfony по умолчанию используется Twig. Это обработчик шаблонов, который позволяет писать чистый код и расширяет возможности нативного PHP. Например, Twig упрощает создание экранирующих последовательностей.
Laravel
В этом фреймворке применяется шаблонизатор Blade. Он позволяет использовать код PHP в представлениях. Blade практически не влияет на скорость работы приложений, так как представления хранятся в отдельных файлах с расширением .blade.php . Код представлений преобразуется в нативный PHP.
Этот фреймворк не использует сторонних шаблонизаторов по умолчанию. Но разработчик может выбирать инструменты в зависимости от решаемых задач. В число рекомендуемых шаблонизаторов входят 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 расширениями соответственно. Если для вас важна возможность расширить стандартную функциональность фреймворка с помощью дополнительных пакетов, выбор очевиден.
Схожесть характеристик
Выше мы рассматривали разницу между фреймворками. Пришло время сосредоточиться на похожих характеристиках. Вот они:
- Все три инструмента относятся к fullstack-фреймворкам. Они обеспечивают полный цикл разработки веб-приложения, включая фронтенд и бэкенд.
- Это проекты с открытым исходным кодом, который можно найти на GitHub.
- За Symfony, Laravel и Yii2 стоят многочисленные активные сообщества.
- Все три фреймворка поддерживают объектно-реляционное отображение (ORM). Поэтому эти инструменты удобно использовать в парадигме объектно-ориентированного программирования.
- Перечисленные фреймворки представляют собой надёжные и безопасные инструменты для создания веб-приложений.
Всё ещё не можете выбрать фреймворк? Вот тезисная информация, которая поможет определиться.
- есть LTS версии фреймворка;
- широкая функциональность из коробки;
- это самый стабильный фреймворк;
- есть готовые компоненты, что позволяет использовать при создании приложений модульный подход.
- поддерживает Ajax;
- обеспечивает быстродействие и производительность приложений;
- легко расширяемый фреймворк;
- есть встроенный обработчик ошибок;
- подходит для разработки веб-сервисов, построенных с учётом REST (RESTful web-service).
- самый популярный PHP-фреймворк;
- есть встроенный пакетный менеджер Composer;
- поддержка юнит-тестирования из коробки;
- большое количество пакетов для расширения функциональности.
Why use a PHP framework?
This post will list the 10 best PHP frameworks out there to help you choose.
A PHP framework provides a basic structure for streamlining the development of web apps. We use them because they speed up the development process.
Above all, the responsiveness of websites and applications built using PHP frameworks helps businesses fulfill their performance needs. So there’s no doubt that PHP frameworks will continue gaining attention and popularity in 2019.
Какой PHP-фреймворк лучше
Все перечисленные фреймворки подходят для разработки веб-приложений. Однако у этих инструментов есть отличия, которые разработчик должен учитывать. Подробности ниже.
Что будем сравнивать?
Для сравнения были выбраны следующие фреймворки:
- slim-3.0
- ci-3.0
- lumen-5.1
- yii-2.0
- silex-1.3
- fuel-1.8
- phpixie-3.2
- zf-2.5
- zf-3.0
- symfony-2.7
- symfony-3.0
- laravel-5.3
- laravel-5.4
- bluz (версия 7.0.0 — для РНР5.6 и версия 7.4 для РНР7.0 и выше)
- ze-1.0
- phalcon-3.0
- производительность (throughput),
- занимаемая память (memory),
- время выполнения (exec time),
- количество подключаемых файлов (included files).
Как выбрать PHP-фреймворк
Выбрать фреймворк помогут ответы на следующие вопросы:
- Какая функциональность у фреймворка, соответствует ли она нуждам проекта?
- Насколько сложно изучать выбранный фреймворк?
- Легко ли масштабировать проект, созданный с помощью данного фреймворка?
- Насколько активно развивается инструмент?
- Есть ли гарантированная долгосрочная поддержка (LTS)?
- Есть ли активное сообщество?
8. Swoft
Swoft is a PHP high performance microservice coroutine framework. It has been published for many years and has become the best choice for php. It can be like Go, built-in coroutine web server and common coroutine client and is resident in memory, independent of traditional PHP-FPM. There are similar Go language operations, similar to the Spring Cloud framework flexible annotations.
Reasons to use Swoft
- Based on Swoole native Coroutine, comes with a resident memory and a package of other Swoole features.
- Comes with Mysql/Redis/Rpc efficient connection pool and all connection disconnection reconnection. Developers not do care about connection pooling, and the corresponding components have been implemented.
- AOP can be used for all objects managed by the framework container. Using AOP allows you to control the behavior of instance objects without changing the inside of the instance.
- The RPC service is divided into RPC Server and RPC Client, and the framework provides a more elegant way to use RPC services like Dubbo.
- With service mesh frameworks such as Istio/Envoy, and provides a set of rapid build microservice governance components for small and medium-sized businesses, including service registration and discovery, service bucks, service throttling, and configuration centers.
Рейтинг фреймворков
CakePHP
Легкий стиль и элегантный код являются сильными сторонами этого «программного каркаса». Фреймворк характеризуется как простая и легкая в изучении среда, благодаря использованию оптимизированной системы CRUD. CakePHP будет оптимальным решением для создания визуально впечатляющих и функциональных сайтов.
Особенности CakePHP
- Полная совместимость с PHP4 и PHP5.
- Удобное взаимодействие с БД через встроенный ORM (Object-Relational Mapping).
- Поддержка большого числа плагинов и СУБД (PostgreSQL, MySQL, SQLite).
- Создание приложений по принципу скаффолдинга — на основе структуры БД.
- Есть разделение фреймворка на основные компоненты (коллекции, валидация, утилиты, события, ядро), которые можно использовать независимо друг от друга.
- Обширная документация и активное сообщество.
9. PHPixie
Introduced in 2012 and just like FuelPHP, PHPixie implements the HMVC design pattern. Its goal was to create a high-performance framework for read-only websites.
Reasons to use PHPixie
- It’s easy to get started with PHPixie, which is suitable for social networking websites, customized web applications, and web app development services.
- Key features include HMVC architecture, standard ORM (object-relational mapping), input validation, authorization capabilities, authentication, and caching.
- PHPixie is built using independent components. For this reason, you can use it without the framework itself. Note that PHPixie has relatively few modules. Besides that, it lacks support for components independently made from the dependencies. Since it’s relatively new, it’s less popular and has a smaller community of users than other frameworks.
3. CodeIgniter
CodeIgniter — это фреймворк, который известен тем, что для его приведения в рабочее состояние требуется минимальное количество настроек. Это позволяет тем, кто его выбирает, работать в хорошем темпе. Его много раз, с момента появления в 2006 году, обновляли. Сейчас самой свежей его версией является 4.0.3.
Размер фреймворка, включая документацию, не превышает 2 Мб, но он, несмотря на такую компактность, предлагает разработчикам множество стандартных модулей для создания компонентов, отличающихся надёжностью и подходящих для многократного использования. Это делает CodeIgniter отличным выбором для тех, кто создаёт динамические веб-сайты.
Этот фреймворк поощряет использование архитектуры MVC, но он, в плане архитектуры создаваемых на его основе проектов, весьма гибок, и не ограничивает разработчиков лишь этой архитектурой. В нём имеется надёжная система защиты контента, он обладает стандартными механизмами для защиты от CSRF- и XSS-атак.
Разработчику, присматривающемуся к CodeIgniter, стоит знать о том, что это одна из тех PHP-платформ, которые легче всего освоить. Его, кроме того, очень легко устанавливать. Эти факторы делают его идеальным выбором для новичков.
Читайте также: