УДК 004.4

Анализ фреймворков языка программирования PHP для разработки современных веб-приложений

Вахромеев Максим Александрович – бекэнд-разработчик Общества с ограниченной ответственностью «ЯЗАНЯТ»

Верин Денис Олегович – инженер-программист Общества с ограниченной ответственностью «Смартвэй»,

Ефремов Михаил Алексеевич – консультант отдела Государственного управления Министерства экономического развития и промышленности Пензенской области

Аннотация: В данной статье рассмотрены популярные фреймворки, которые используются для разработки на языке программирования PHP. Проведен анализ возможности применения наиболее популярных фреймворков в современной разработке. В статье рассмотрена статистика популярности фреймворков среди разработчиков, ключевые особенности каждого фреймворка, общее предназначение фреймворков. При анализе производилось исследование уровня заработных плат в зависимости от квалификации разработчиков. В данной статье  подтверждается положительное влияние использования фреймворков на скорость и качество разработки веб-приложений любого уровня.

Ключевые слова: веб-разработка, фреймворк, разработка веб-приложений, инструменты для разработки, кроссплатформенность.

Язык PHP – это язык программирования, который является наиболее распространенным в веб-разработке. Он широко используется как для простых веб-сайтов, так и для высоконагруженных корпоративных порталов и систем. Язык отличается кроссплатформенностью, простотой изучения, большим сообществом разработчиков, встроенным набором функционала для работы
с разными протоколами и базами данных.

При разработке высоконагруженного сервиса или корпоративного портала в первую очередь целесообразно будет провести анализ имеющихся решений и выбрать наиболее подходящее. Одним из решений для разработки сложных приложений является использование фреймворков.

Фреймворк – это программное обеспечение, облегчающее разработку
и объединение разных компонентов большого программного проекта [1].

Использование фреймворков при разработке добавляет следующие преимущества:

  • ускорение процесса разработки: фреймворки предоставляют набор готовых инструментов, шаблонов и модулей;
  • улучшение производительности: как правило фреймворки имеют оптимизированную архитектуру и методы работы. Это позволяет достичь минимальных задержек при исполнении кода;
  • стандартизация и лучшие практики: фреймворки популяризируют использование лучших практик и стандартов разработки. Они следуют стандартам PSR;
  • безопасность: фреймворки представляют собственные механизмы безопасности, осуществляющие защиту от распространенных атак, таких как XSS, CSRF, SQL-инъекции, а также в репозиториях или специализированных трекерах ведется учет новых обнаруженных уязвимостей в коде;
  • поддержка сообщества: популярные фреймворки имеют большие
    по численности сообщества разработчиков, которые представлены
    как официальными форумами, так и чатами в социальных сетях.

Реализация проекта без использования фреймворка скрывает много трудностей, которые уже были решены механизмами фреймворка. Наибольшую популярность приобрели фреймворки, представленные на рисунке 1.

image001

Рисунок 1. Популярные фреймворки языка программирования PHP.

В данной статье будут рассмотрены преимущества и недостатки использования фреймворков Laravel, Symfony и Yii при коммерческой разработке веб-приложений.

На рисунке 2 представлен рейтинг популярности фреймворков по частоте обращений на сайте stackoverflow.com с 2009 по 2020 гг.

image002

Рисунок 2. Количество вопросов по конкретным фреймворкам в процентах.

Laravel – это фреймворк с открытым исходным кодом, который разрабатывается сообществом с 2011 года. Является наиболее популярным выбором среди разработчиков [2].

Одна из главных причин популярности Laravel – удобство использования, низкий порог вхождения, быстрота разработки.

К преимуществам фреймворка можно отнести удобство использования, мощную систему маршрутизации, ORM Eloquent с низким порогом вхождения, кодогенерацию большого количества модулей фреймворка (моделей, миграций, тестов, контроллеров и т.д.), встроенную поддержку популярных баз данных (MySQL, PostgreSQL, SQLite), систему очередей
и заданий.

К недостаткам можно отнести низкую производительность, ограниченная гибкость, не самая удобная структура каталогов по умолчанию, зависимость нововведений фреймворка от сообщества, необходимость постоянной поддержки разработанного проекта.

Symfony – наиболее зрелый и надежный из всех PHP фреймворков. Фреймворк разрабатывается с 2005 года и популярен благодаря соответствию веб-стандартам и шаблонам проектирования [3].

Основные преимущества фреймворка:

  • гибкость и расширяемость: возможность использовать необходимые готовы модули, а также реализовывать собственные;
  • большое по численности сообщество;
  • поддержание принципа разделения ответственности и шаблона проектирования Model-View-Controller;
  • большое количество мощных встроенных модулей: валидация данных, маршрутизация, кеширование, обработка изображений.
  • К недостаткам можно отнести:
  • сложность изучения и высокий порог вхождения – данный фреймворк будет сложным для использования начинающими разработчиками;
  • высокое использование серверных ресурсов, особенно при плохой оптимизации кода;
  • необходимость постоянной поддержки и обновления;
  • избыточность – для некоторых проектов фреймворк может предоставлять слишком большие возможности.

Yii3 – объектно-ориентированный компонентных фреймворк, реализующий шаблон проектирования Model-View-Controller [4]. Данный фреймворк пакетный, а значит что его компоненты можно подключить
к проектам на других версиях Yii, например 2, а также к другим фреймворкам и любым проектам на PHP [5]. В опросе русскоязычного сообщества
php-разработчиков (phpcommunity.ru) занял третье место по вопросу:
«Выбор фреймворка в 2021» (рисунок 3) [6].

 image003

Рисунок 3. Выбор фреймворка в 2021.

Особенности данного фреймворка будут рассмотрены в сравнении
с предыдущим двумя, описанными в данной статье ранее.

Основные особенности фреймворка Yii:

  1. Наиболее подробная документация, в которой описаны даже свойства классов.
  2. Слабое связывание компонентов фреймворка между собой.
  3. Простота использования благодаря пакетной организации архитектуры.
  4. Позволяет построить доменную архитектуру приложения
    с наибольшим комфортом разработки.

В дополнение к рассмотренным особенностям фреймворков также
в статье к ознакомлению представлены зарплатные вилки
на весну 2023 года [7]:

Таблица 1. Зарплатные вилки по фреймворкам.

 

Laravel

Symfony

Yii

Junior

48000

Нет данных

Нет данных

Middle

149000

177000

150000

Senior

233000

264000

Нет данных

Lead

275000

301000

Нет данных

Таким образом, если проект требует высококвалифицированного
и качественного подхода, то стоит использовать фреймворк Symfony.
Если компания предпочитает набирать разработчиков уровня junior,
то для разработки можно рекомендовать фреймворк Laravel или Yii.

Все рассмотренные в данной статье фреймворки являются популярными среди backend-разработчиков и продолжают активно развиваться и занимать лидирующие позиции в России по частоте выбора.

Список литературы

  1. Фаронов В.В. Создание приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12.
  2. Kukhnavets P. 10 PHP Frameworks to Keep an Eye on. [Электронный ресурс], режим доступа: https://welldoneby.com/blog/top-php-frameworks-to-keep-an-eye-on/ (Дата обращения 08.08.2023).
  3. Jain S. The 9 Most Popular PHP Frameworks for Developers. [Электронный ресурс], режим доступа: https://dzone.com/articles/the-9-most-popular-php-frameworks-for-developers (Дата обращения 08.08.2023).
  4. Yii – Wikipedia. [Электронный ресурс], режим доступа: https://en.wikipedia.org/wiki/Yii (Дата обращения 08.08.2023).
  5. Yii3 Overview 1. Вступление. [Электронный ресурс], режим доступа: https://habr.com/ru/articles/695664/ (Дата обращения 08.08.2023).
  6. 2021 год в русcкоговорящем PHP-сообществе (опрос и стрим). [Электронный ресурс], режим доступа: https://phpcommunity.ru/2021-php#!/tab/404346216-1 (Дата обращения 08.08.2023).
  7. Зарплатные вилки весной 2023: языки программирования и фреймворки. [Электронный ресурс], режим доступа: https://habr.com/ru/companies/habr_career/articles/746038/ (Дата обращения 08.08.2023).

Интересная статья? Поделись ей с другими: