Как выбрать тот самый PHP-фреймворк. Сравнительное тестирование

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

Для этого нужно учесть достаточно большое количество характеристик, от «как быстро всё будет работать» до «а необходима ли нам эта фича?». И так каждый раз. Именно в моменты мозгового штурма команда сравнивает удобство фреймворка, скорость, набор фич, которые реализованы в нем или в совместимых с ним модулях.

Но какой же всё-таки лучше, быстрее и производительнее?

Разработчики постоянно проводят сравнение фреймворков, чтобы прояснить для себя этот вопрос. Например, в статье Lukasz Kujawa приведено сравнение PHP фреймворков. Одно «но» - статья за 2013 год. А ведь время идёт… Поэтому мы решили провести своё, актуальное сравнение фреймворков.

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


Одной из основных целей данной статьи также является попытка практическим путем определить улучшения в производительности и эффективности новых версий PHP. Поэтому тестирование было проведено на РНР 5.6/7.0/7.1

Что будем сравнивать?

Для сравнения были выбраны следующие фреймворки:
  • 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
Тестирование условно разделено на 4 вида:
  • производительность (throughput),
  • занимаемая память (memory),
  • время выполнения (exec time),
  • количество подключаемых файлов (included files).

Методика тестирования и тестовый стенд

Машина, на которой производилось тестирование, обладает следующими характеристиками:

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

Вводим команду git clone https://github.com/kenjis/php-framework-benchmark - и фрейм уже на нашей машине. Поскольку мы использовали Mint, необходимо выполнить настройку: 


# Added
net.netfilter.nf_conntrack_max = 100000
net.nf_conntrack_max = 100000
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10

Sudo sysctl -p

Немного о структуре самого 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 .

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

Для отображения графиков мы воспользовались ссылкой http://localhost/php-framework-benchmark/ .

Как вы понимаете, необходимо было произвести настройку Apache и заставить его смотреть в папку с фреймом. Всё это описано в readme, поэтому вопросов не возникает.

Результаты тестирования фреймворков

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

Первая форма - это наглядный тип представления. Каждая характеристика содержит 4 диаграммы. Каждая диаграмма отображает сравнение фреймворков между собой, плюс накопительная диаграмма. Она была построена при использовании определенной версии РНР. Таким образом можно проследить эволюцию улучшений в PHP и фреймворках.

Вторая форма - это результат тестирования в виде таблицы (хватить наглядности, давайте говорить серьезно - дайте мне больше чисел!).

Производительность (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

Для наглядности построили графики для каждой версии PHP:

PHP5.6:

PHP7.0:

PHP7.1:



Занимаемая память (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:

Сводная накопительная диаграмма (по фреймворкам):

Время выполнения

Время выполнения - время, затрачиваемое системой для выполнения поставленной задачи. Измеряется от начала выполнения задачи до выдачи результата системой.

Мы рассмотрели, сколько запросов в секунду может обработать фреймворк, сколько памяти он при этом занимает. Теперь рассмотрим, сколько нам нужно ожидать, чтобы получить ответ от сервера. Чем ниже это значение, тем лучше для нас , да и для нервной системы клиента нашего приложения.

Время приведено в миллисекундах (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:

Сводная накопительная диаграмма (по фреймворкам):

Подключаемые файлы

Характеристика, отвечающая за количество подключаемых файлов, которые описаны в файле «точки входа» фреймворка. Понятно, что система тратит какое-то время на поиск и подключение. Следовательно, чем меньше файлов, тем быстрее будет осуществляться первый запуск приложения, так как обычно в последующие разы фреймворк работает с кэшем, что ускоряет работу:
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

В Laravel 5.3 можно сгенерировать файл compiled.php, и тем самым уменьшить количество подключаемых файлов, собрав их в один. Но есть одно «но»: команды для генерации этого файла в Laravel 5.4 больше нет. Разработчик решил удалить эту фичу, так как посчитал (https://github.com/laravel/framework/pull/17003), что для настройки производительности лучше использовать opcache.

Стоит ли обновляться?

Сводные данные по версиям более чем наглядно показывают, какой произойдет прирост производительности и эффективности использования ресурсов при переходе (или изначальном выборе) на новую версию 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%.

Примечание. Тестирование при помощи ab - с чем мы столкнулись


«А что со slim и phpixie» - этот вопрос подтолкнул на расследование поведения утилиты ab при взаимодействии с этими фреймворками.

Выполним тест отдельно для Slim-3.0:

Ab -c 10 -t 3 http://localhost/php-framework-benchmark/slim-3.0/index.php/hello/index

Concurrency Level: 10
Time taken for tests: 5.005 seconds
Complete requests: 2
Failed requests: 0
Total transferred: 1800 bytes
HTML transferred: 330 bytes
Requests per second: 0.40 [#/sec] (mean)
Time per request: 25024.485 (mean)
Time per request: 2502.448 (mean, across all concurrent requests)
Transfer rate: 0.35 received

Что-то не так - количество запросов в секунду всего 0.4 (!)

Ab -c 10 -t 3 http://localhost/php-framework-benchmark/laravel-5.4/public/index.php/hello/index

Concurrency Level: 10
Time taken for tests: 3.004 seconds
Complete requests: 1961
Failed requests: 0
Total transferred: 1995682 bytes
HTML transferred: 66708 bytes
Requests per second: 652.86 [#/sec] (mean)
Time per request: 15.317 (mean)
Time per request: 1.532 (mean, across all concurrent requests)
Transfer rate: 648.83 received

Дело было в Keep Alive соединении, подробнее можно узнать тут.

“When you make requests with «Connection: keep-alive» the subsequent request to the server will use the same TCP connection. This is called HTTP persistent connection. This helps in reduction CPU load on server side and improves latency/response time.

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.

By default HTTP 1.1 client/server uses keep-alive where as HTTP 1.0 client/server don’t support keep-alive by default.”


Таким образом, тест для Slim должен выглядеть так:

Ab -H "Connection: close" -c 10 -t 3 http://localhost/php-framework-benchmark/slim-3.0/index.php/hello/index

Concurrency Level: 10
Time taken for tests: 3.000 seconds
Complete requests: 10709
Failed requests: 0
Total transferred: 2131091 bytes
HTML transferred: 353397 bytes
Requests per second: 3569.53 [#/sec] (mean)
Time per request: 2.801 (mean)
Time per request: 0.280 (mean, across all concurrent requests)
Transfer rate: 693.69 received

Заключение

Как и стоило ожидать безоговорочным лидером по производительности (но не скорости разработки) является 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, и уменьшенное количество используемой памяти.

Выбор слишком велик, а выделить правильный фреймворк стало довольно проблематично. Как и у множества других разработчиков, ваш взгляд может пасть на популярные, проверенные и надежные фреймворки Bootstrap и Foundation. Однако новые, но не такие известные фреймворки могут намного больше подходить под ваши нужды. В таких условиях вам просто необходимо разобраться в самых популярных фреймворках на сегодня.

На что нужно смотреть при выборе front-end фреймворка

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

Ваш уровень – учитывайте уровень своих знаний при выборе front-end фреймворка. Если вы новичок, возможно, вам подойдет надежный фреймворк Bootstrap, в котором есть множество встроенных виджетов, и который потребует от вас минимальных навыков программирования. Если же вы более продвинутый разработчик, тогда вам подойдет более простой фреймворк, который даст вам больше пространства для кастомизации. Такие фреймворки компактнее и в них меньше кода, что будет только плюсом.

Адаптивный дизайн – любой разрабатываемый вами сайт должен хорошо отображаться на всех устройствах, так как все больше людей заходят в интернет через мобильные устройства. Сайт Similar Web выпустил отчет состояние мобильного интернета в США за 2015 год , в котором говорится, что 56 процентов потребителей трафика ведущих сайтов в США заходят в интернет с мобильных устройств. Ищите front-end фреймворки с поддержкой адаптивного дизайна, тогда у вас будет на одну проблему меньше.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

CSS препроцессоры – если вы используете CSS препроцессоры, к примеру, Sass или LESS, проверьте, чтобы они были совместимы с фреймворком.

Внешний вид – выбирайте тот фреймворк, с помощью которого вы можете добиться отличного внешнего вида с наименьшими усилиями.

Прототипы – идеальный front-end фреймворк позволяет быстро создавать вайрфреймы и прототипы для ускорения процесса дизайна и разработки.

И самое главное: хороший front-end фреймворк упрощает, модернизирует и ускоряет процесс дизайна и разработки сайта и в то же время обеспечивает вас гибкостью и функциональностью для создания уникального продукта.

Без лишних слов представляю вам восьмой по популярности front-end фреймворк в 2016 году.

Bootstrap

ТОП был бы неполным без очень популярного front-end фреймворка Bootstrap . Авторами фреймворка являются создатели Twitter, которые выпустили его в 2011 году. Самый используемый open-source фреймворк в мире.

Как и в любой другой эффективный front-end фреймворк, в Bootstrap входят компоненты HTML, CSS и JS. Фреймворк придерживается стандартов адаптивного веб-дизайна, позволяя вам создавать адаптивные сайты любой сложности и размеров.

Постоянные обновления Bootstrap гарантируют, что вы получите самые новые и лучшие функции. К примеру, почти сразу в фреймворк были добавлены темы, отвечающие стандартам material design от Google. Темы были улучшены для поддержки Sass.

поддержка адаптивного веб-дизайна (можно отключить по желанию);

обширная документация.

редко используемые стили увеличивают вес стандартного фреймворка до 276 Кб;

слишком много HTML классов и DOM элементов, что загрязняет код и путает пользователя.

Подходит для новичков и тех, кто предпочитает надежные front-end фреймворки.

нет заблокированных стилей, что дает вам больше гибкости;

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

довольно большой вес файлов по умолчанию;

немного сложноват для новичков.

Подойдет разработчикам с приличным опытом, чья основная задача – быстрая разработка, привлекательные и адаптивные сайты.

Materialize

Фреймворк Pure создан командой разработчиков Yahoo. В комплекте идет легкий массив CSS модулей, которые подходят под любой проект. С Pure вы с легкость сможете создавать адаптивные кнопки, меню, сетки, таблицы и т.д. Фреймворк написан на чистом CSS и не поддерживает JS или JQuery плагины.

После минификации и сжатия через Gzip фреймворк Pure сжимается до 4.5Кб, что делает его одним из самых легких и проворных front-end фреймворков. Pure идеально подходит для мобильной разработки, из-за чего он приглянулся множеству разработчиков.

очень легкий, что обеспечивает быструю загрузку даже на мобильных устройствах;

гибкий массив CSS модулей можно использовать в абсолютно любом дизайне и проекте.

написан на CSS без поддержки JS или JQuery плагинов.

Подходит разработчикам, которые основной упор делают на создании адаптивных и быстрых мобильных сайтов.

Skeleton

Skeleton – легковесный адаптивный шаблон всего лишь из 400 строк кода. Фреймворк включает минимально необходимый функционал для старта разработки. В отличие от описанных выше фреймворков, это не комплексное решение.

Skeleton – адаптивный фреймворк, в основе которого лежит 12-ти колоночная сетка. В комплекте только необходимые элементы: кнопки, списки, таблицы, формы и т.д.

очень легкий;

простота и удобство для написания маленьких проектов.

отсутствие широкого выбора компонентов, в отличие от больших фреймворков.

Подходит тем, кто создает небольшие проекты, где не нужны все стилевые компоненты, которые можно найти в больших фреймворках.

UIKit

UIKit – высокомодульный front-end фреймворк, выделяющийся среди большинства по множеству причин. Главная причина – наличие двух препроцессоров, LESS и Sass.

Благодаря своим гибким и адаптивным компонентам с понятными именами, UIKit стал одним из самых популярных front-end фреймворков.

Еще большую универсальной фреймворку придают 30 модульных компонентов. Среди компонентов: меню, HTML формы и таблицы, JS компоненты, например, выезжающие вкладки и модальные окна, общие элементы, такие как кнопки, знаки и перекрывающие слои, а также компоненты макета, такие как жидкие, адаптивные системы сеток.

высокая кастомизация;

уникальная модульная структура, позволяющая добавлять компоненты к стилям, не оказывая влияния на общие стили;

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

фреймворк еще новый, в сети по нему очень мало ресурсов.

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

Milligram

Milligram – еще один легковесный фреймворк, похожий на Skeleton. После сжатия через Gzip размер файла достигает 2Кб, что обеспечивает разработчикам простой и удобный старт.

Система сеток в Milligram отличается от большинства, так как она использует стандарт CSS Flexible Box Layout Module. Также в комплекте есть пара ключевых компонентов, которые помогут вам начать работу, среди которых шрифты, кнопки, формы, списки, таблицы, цитаты и т.д.

очень легкий, всего 2Кб после сжатия через Gzip;

использует систему сеток Flexbox.

фреймворк довольно новый, про него очень мало информации;

минимальное количество компонентов стилей по сравнению с более крупными фреймворками.

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

Susy

Некоторые скажут, что Susy – не совсем front-end фреймворк, так как он решает сложные задачи по макетированию. По факту, множество людей расценивают Susy, как систему сеток, но она может стать незаменимым инструментом для людей, работающих с макетами.

Susy вооружает вас миксинами, с помощью которых можно создавать сетки. Фреймворк выполняет все вычисления за вас, что экономит много времени и сил.

Susy позволяет создавать сетки любой сложности. Если вы пытались решить проблему с созданием сложной системы сеток, вам поможет Susy.

повышенная гибкость позволяет создавать сетки любой сложности;

автоматические вычисления.

не покрывает все вопросы дизайна сайта, что потребует еще одного фреймворка;

нет встроенных сеток.

Подходит разработчикам с уникальными задачами по созданию макетов.

Статистика по front-end фреймворкам

Ваше решение не должно основываться на популярности фреймворка. Фреймворк необходимо выбирать, исходя из потребностей в разработке. И все же интересно, как расположатся все эти фреймворки в рейтинге. Список ниже показывает, сколько звезд получил каждый проект на GitGub на момент написания статьи (от самых популярных до менее популярных).

Bootstrap: 101,433 звезд

Semantic-UI: 28,170 звезд

Foundation: 24,127 звезд

Materialize: 21,515 звезд

Material UI: 19,631 звезд

Pure: 14,967 звезд

Skeleton: 12,622 звезд

UIKit: 7,433 звезд

Milligram: 4,195 звезд

Susy: 3,506 звезд

Кроме того, в сравнении ТОП-5 front-end фреймворков на Google Trends видно, что Bootstrap все еще на голову опережает своих конкурентов по числу упоминаний.

Заключение

Как видно, разные front-end фреймворки имеют свои преимущества. Что подходит одному разработчика или проекту, не подходит другому. Поэтому крайне важно провести анализ множества вариантов, прежде чем выбрать что-то конкретное.

Перед выбором front-end фреймворка определите свой уровень знаний, а также базовые требования вашего проекта. Скорее всего, один или несколько продуктов из списка идеально подойдут вам.

Выбор правильного фреймворка для проекта на PHP - первый шаг для его успешной реализации. Из нашей статьи вы узнаете о лучших PHP-фреймворках 2016 года.

Slim

Slim - микрофреймворк, идеально подходящий для небольших проектов или приложений, где полноценный фреймворк покажется лишним. Его используют многие PHP-разработчики для создания RESTful API и сервисов. Среди функций Slim - кэширование HTTP на стороне клиента, URL-маршрутизация, шифрование сессий и cookie, а также мгновенные сообщения по HTTP-запросам. Документация полная и сделана качественно.

Phalcon

Phalcon был создан в 2012 году и быстро стал популярным среди PHP-разработчиков. Его считают очень быстрым, так как он написан на C и C++, чтобы достигать наивысшего возможного уровня оптимизации производительности. Но не волнуйтесь, учить С не придется - вся функциональность заключена в PHP-классы, которые можно использовать для любых целей.

Так как Phalcon изначально был создан как расширение на С, его архитектура оптимизирована на низком уровне, что значительно снижает расходование ресурсов, типичное для приложений, основанных на схеме MVC. Phalcon не только повышает скорость выполнения, но и снижает уровень затрат ресурсов. У этого PHP-фреймворка есть и много других замечательных функций: универсальный автозагрузчик, менеджмент ресурсов, безопасность, перевод, кеширование и т. д. Документация для Phalcon довольна обширна, а использовать его несложно.

Интересный факт: еще в году Phalcon был вторым по популярности фреймворком, согласно данным sitepoint.com. А уже в 2015-м он заметно сдал позиции и переместился ближе к концу списка.

CakePHP

Фреймворку CakePHP уже десять лет, а он все еще в топе. Работе с ним легко обучиться, а шаблонирование - быстрое и настраиваемое. Встроенная функция CRUD очень помогает при взаимодействии с базой данных. В последнем релизе - CakePHP 3.x - улучшилось управление сессиями и модульность (они разъединили несколько компонентов), а также расширились возможности создания большего количества отдельных библиотек.

Среди проектов, реализованных на CakePHP, - сайты BMW и Hyundai . Выбирайте его, если вашему веб-приложению требуется высокий уровень безопасности, потому что функций для этого здесь предостаточно:

  • валидация ввода;
  • Защита от атак с использованием внедряемого SQL (SQL injection);
  • предотвращение межсайтового скриптинга;
  • защита от подделки межсайтовых запросов и многое другое.

Zend Framework 2

Zend Framework 2 - фреймворк с открытым исходным кодом, использующийся для разработки веб-приложений и сервисов на PHP 5.3+. Он использует на 100% объектно-ориентированный код и большинство новых функций PHP 5.3: пространства имен, позднее статическое связывание, лямбда-функции и замыкания. Zend - надежное решение со множеством вариантов конфигурации. Обычно его не рекомендуют использовать для небольших приложений, а вот для крупных проектов это самое то.

Среди функций Zend Framework 2: инструменты криптографического кодирования, простой в использовании drag-and-drop-редактор с поддержкой фронтенд-технологий (HTML, CSS, JavaScript), мгновенная онлайн-отладка, инструменты для unit тестирования, мастер конфигурации базы данных. Создатели этого фреймворка учли методологию Agile, что позволяет создавать высококачественные приложения для корпоративных клиентов.

В партнерах Zend - IBM, Microsoft, Google и Adobe. Год назад Zend объявил о следующем крупном релизе - Zend Framework 3, оптимизированном под PHP 7, но все еще поддерживающем PHP 5.5 и выше. Все ждали новинку еще осенью 2015-го, но и сейчас, в апреле 2016-го третьей версии все нет.

Yii 2

Выбирайте Yii , чтобы повысить производительность сайта. Он быстрее всех остальных PHP-фреймворков, так как использует технологию загрузки по требованию (lazy loading). Yii 2 полностью объектно-ориентированный и основан на принципе Don’t-Repeat-Yourself («не повторяйся»), так что основа для кода будет чистая и логичная.

Yii 2 интегрирован с jQuery и поставляется с набором AJAX функций. Механизмы скиннинга и выбора тем здесь просты, так что фреймворк понравится тем, кто ранее занимался фронтенд-разработкой. Здесь также есть мощный генератор исходного кода - Gii , который способствует объектно-ориентированному программированию и быстрому прототипированию, а также предоставляет веб-интерфейс, в котором можно интерактивно генерировать нужный код.

PHPixie

PHPixie - сравнительно новый фреймворк, созданный в 2012 году для сайтов-визиток. Как и FuelPHP, PHPixie поддерживает схему HMVC. Он построен на независимых компонентах , которые можно использовать даже без самого фреймворка. Модули компонентов PHPixie полностью протестированы и требуют минимум других компонентов для своей работы.

На официальном сайте PHPixie есть обучающее видео, в котором заявляют, что обучиться работе с фреймворком вы сможете всего за полчаса . В их блоге также много практический кейсов. Среди функций:работа с БД на уровне объектов (ORM), кеширование, валидация ввода, аутентификация и возможности для авторизации. Можно использовать язык разметки HAML, легко вносить изменения в структуру БД, а также есть продуманная система маршрутизации.

Интересный факт о PHPixie: согласно исследованию Sitepoint 2015 года, это любимый фреймворк украинских PHP-разработчиков. Компания «Культпросвет» тоже находится в Украине, но мы почему-то не можем поставить этот фреймворк на первое место, рука не поднимается. PHPixie также популярен среди группы респондентов до 18 лет. Мы думаем, это благодаря картинке с феечкой на сайте:D

CodeIgniter

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

CodeIgniter не совсем опирается на схему MVC. Использование контроллеров обязательно, а моделей и представлений - нет, так что можно применять собственные стандарты оформления кода и найменований. Этот фреймворк подойдет тем, кому тесно в рамках, - тут море свободы. По сути это простой фреймворк на 2 МБ, но при желании можно добавлять сторонние плагины, если требуется более сложная функциональность.

Symfony 2

Компоненты фреймворка Symfony 2 используются во многих замечательных проектах, например , phpBB и Laravel - (внимание, спойлер!) победителе нашего рейтинга. Symfony может гордиться обширным сообществом разработчиков и большим количеством преданных поклонников.

Компоненты Symfony - это PHP-библиотеки, которые можно использовать повторно и выполнять с их помощью множество задач: создание форм, конфигурацию объектов, маршрутизацию, аутентификацию, создание шаблонов и много чего еще. Любой компонент можно установить с помощью Homestead , которая по сути является надстройкой над Vagrant.

Сравнительная таблица PHP-фреймворков

Laravel Symfony 2 Codeigniter PHPixie Yii 2 Zend Framework 2 CakePHP Phalcon Slim Fuelphp
требуемая
версия php
5.5.9 5.5.9 5.4 5.3 5.1.0 5.3 5.5.9 5.3 5.5 5.3.3
ТИПы
поддерживаемых
баз данных
MySQL Postgress SQLite SQL Server MySQL
Postgress
SQLite
Qracle
MySQL
Postgress
MySQL
PostgreSQI
SQLite
MongoDB
MySQL
Postgress
Qracle
Sqlite
MySQL
SqLite
SQL Server Oracle Postgress
MySQL
SQLite Postgress
SQL server
Oracle
MySQL
SQLite Postgress
Oracle
MySQL
SQLite Postgress
Oracle (через
плагин
Slim-PDO)
MySQL
SQLite Postgress
Облачное
хранилище
Amazon S3
Rackspace
Amazon S3
(плагин)
Amazon S3
(плагин)
- Amazon S3 Amazon S3
Rackspace
Windows Azure
Amazon S3
(плагин)
Amazon S3
(плагин)
- Amazon S3
(плагин)
документация на
официальном
сайте
Пошаговое
руководство,
справка по API, видеоуроки
Пошаговое
руководство,
справка по API
Небольшое
пошаговое
руководство,
справка по API
Пошпговое
руководство
Пошаговое
руководство,
справка по API
Пошаговое
руководство,
подробная справка
по API с

Вы знали, что 40% пользователей покидают сайты с плохим дизайном? Зачем терять прибыль? Выберите и установите прямо сейчас один из 44 тысяч премиум шаблонов для сайтов. Идеальный выбор для вашего бизнеса!

Среди всех языков серверного программирования PHP-фреймворк бесспорно наиболее приспособлен для изучения. Он практически всегда установлен даже на самом дешевом веб-хостинге. Он также легко устанавливается на любой рабочей машине. Новички, имеющие определенный опыт в разработке веб-страниц на HTML и CSS, смогут просто освоить основные понятия: переменные, встраиваемые условные конструкции и выражения include. PHP также предоставляет множество широко используемых функций, которые пригодятся для разработки динамических сайтов.

Все говорит о том, что язык PHP можно без проблем освоить быстро. Однако у этого преимущества есть и свои недостатки. Новички могут закрывать глаза на многие и нюансы и допускать ошибки в коде, поскольку они будут осваивать все довольно быстро и будут слишком уверены в своих знаниях. Чаще всего по мере добавления функционала на сайт код на выходе будет все сложнее и сложнее. Это потому что в PHP «из коробки» нет механизма, который бы помогал в разделении решения задач.

Давайте сейчас рассмотрим PHP-фреймворк, точнее 5 лучших из них, которые помогут справиться со многими проблемами при работе. Мы вкратце представим те, которые определенно стоит изучить в 2017 году, и расскажем, как именно они могут сделать разработку приложений проще. Поехали!

  1. Laravel

PHP-фреймворк существует уже довольно давно. Один из последних, новичок, – это Laravel. После выпуска 3-й версии его популярность кардинально повысилась, и на сегодняшний день это один из самых известных и распространенных фреймворков. У репозитория Laravel на GitHub рейтинг выше, чем у его более зрелых собратьев, таких как Symfony, CakePHP, CodeIgniter и Yii. О них речь пойдет позже.

Laravel повторно использует и монтирует существующие компоненты, предоставляя вам связующий слой, на базе которого вы можете более структурировано и практически создавать свои веб-приложения. Почерпнув самое лучшее из популярных фреймворков (не только на PHP, но и на других языках), Laravel предоставляет полноценный набор инструментов и архитектуру приложений, в которой собраны многие из лучших функций таких фреймворков, как CodeIgniter, Yii, ASP.NET MVC, Sinatra, Ruby on Rails и так далее.

Ниже представлен график, наглядно демонстрирующий рост популярности Laravel (источник – Google Trends). Максимальное значение (100) обозначает максимальную популярность технологии. Значение 50 говорит о том, что технология стала на 50% менее популярна, а значение 0 – о том, что популярность технологии снизилась до 1%. Все это актуально и для графиков популярности других фреймворков.

Рост популярности Laravel
(источник – Google Trends)

Большинство PHP-фреймворков используют парадигму разделения MVC (с англ. Model-View-Controller – Модель-Вид-Контроллер). Если вы когда-либо работали с одним из вышеупомянутых инструментов или знакомы с MVC, освоить Laravel 5 (самая последняя версия фреймворка) не составит труда.

  1. CodeIgniter

Как и Laravel, CodeIgniter основан на шаблоне MVC. Это такой подход к разработке ПО, который разделяет логику приложения от представления. На практике это позволяет снизить к минимуму количество сценариев на странице, поскольку представление отделено от выполнения сценариев на PHP.

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

Рост популярности CodeIgniter
(источник – Google Trends)

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

  1. Symfony

В то время как многие другие фреймворки лишь следуют правилам MVC, Symfony это фреймворк, у которого MVC лежит в основе. Возможно, это одна из причин, по которым фреймворк Laravel и такая система управления контентом (CMS), как Phpbb, переняли у Symfony многие компоненты и стали идти по его стопам.

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

Рост популярности Symfony
(источник – Google Trends)

Symfony 3 это набор изолированных и многоразово используемых компонентов, на базе которых в свое время были созданы PHP-приложения премиум класса, такие как Drupal и phpBB.

PHP-фреймворк – рассказываем о лучших из них в 2017 году

  1. Yii 2

Yii – это фреймворк обобщенного веб-программирования. Это значит, что он легко подходит для PHP-программирования для различных видов веб-приложений. Благодаря компонентной архитектуре и поддержке усовершенствованного кэширования он особенно хорош для создания крупномасштабных приложений. Например, вы сможете создавать порталы, форумы, интернет-магазины, системы управления контентом (CMS), веб-служб RESTful и так далее.

В Yii используется архитектурная модель MVC, поэтому и организация кода осуществляется на базе этого подхода.

Рост популярности Yii
(источник – Google Trends)

Yii 2 это комплексный PHP-фреймворк, который предоставляет большое количество заслуживающих доверия и готовых к работе функций. Среди них построители запросов и шаблон ActiveRecord для различных баз данных (в частности, реляционных и NoSQL), поддержка разработки веб-API RESTful, поддержка кэширования в несколько уровней и так далее.

  1. Nette

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

Nette это современный PHP-фреймворк, который поддерживает такие технологии, как AJAX / AJAJ, внедрение зависимостей, KISS, MVC, SEO, cool URL и Web 2.0.

Рост популярности Nette
(источник – Google Trends)


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

Фреймворки PHP помогают упростить сложные проблемы с кодированием, предоставляя разработчикам платформу для разработки мощных веб-приложений за короткое время. Структура PHP позволяет использовать быструю разработку приложений (RAD ), что экономит много времени и уменьшает необходимость запуска кодирования с нуля, обеспечивая стабильную разработку приложений.

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

PHP работает с основными принципами управления представления модели (MVC ), которые являются архитектурным шаблоном, представленным на многих других популярных программных языках. Расшифровка MVC - M обозначает необработанные данные , V означает просмотр / пользовательский интерфейс (это то, что на самом деле просматривается), а C - контроллер, который фактически является логикой домена .

Логика домена - это функция, которая позволяет управлять обменом информации между базой данных и пользовательским интерфейсом. Это упрощает весь процесс развития приложения. После того, как вы изучите как работает MVC , вы сможете неимоверно легко работать с PHP Frameworks. Ниже представлены лучшие фреймворки для разработки программного обеспечения для PHP проектов.

Laravel

Laravel - это одна из самых популярных и бесплатных PHP-инфраструктур с открытым исходным кодом. Благодаря специальным правилам программирования эта инфраструктура помогает создавать мощные веб-приложения. Laravel был анонсирован в 2011 году и вскоре стал самой популярной структурой PHP за очень короткий период времени.

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

Преимущества Laravel

Symfony

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

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

Благодаря более чем 20 компонентам, доступным в структуре, разработчик имеет возможность экспериментировать и создавать свои проекты в среде RAD . API-интерфейсы Symfony имеют простой процесс интеграции с третьими приложениями и могут взаимодействовать с известными интерфейсами, такими как ReactJS и другими javascript фреймворками .

Большое количество известных проектов, включая Drupal и phpBB, тоже используют инфраструктуру Symfony. Если углубляться в подробности, то Laravel, самая популярная инфраструктура PHP, основывается на Symfony.

CodeIgniter

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

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

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

Преимущества CodeIgniter


CakePHP

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

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

Это означает, что фреймворк осуществляет поддержку уведомлений («быстрых сообщений») благодаря новым классам FlashHelper и FlashComponent . Необходимо отметить, был улучшен класс CookieComponent , упрощающий разделение конфигурации для настройки пространства имен у куков и обработки куков данных. Отличное управление сессиями. Раньше во многих PHP фреймворках управление сессиями было представлено статическим классом, что вызывало ряд проблем в процессе разработки.

CakePHP упрощает процесс тестирования приложений и позволяет использовать PHPUnit 4.x. Фреймворк может похвастаться улучшенным взаимодействием и однообразием. Каркас приложения и каркасы плагинов имеют одинаковую структуру директорий для улучшения согласованности частей фреймворка друг с другом. Слияние тем и плагинов . Одна из самых важных целей, поставленных перед CakePHP, заключалась в создании мощнейших тем.

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

Yii

Список основных PHP фреймворков не будет полным без Yii Framework. Yii Framework - это блестящая структура, которая предоставляет огромную помощь в кешировании. Данный фреймворк был разработан для эффективной работы с AJAX . Быстрые решения для разработки в Yii Framework упрощают создание приложений, уменьшают на это время.

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

Интеграция позволяет сторонним разработчикам быстро внедрять инфраструктуру в свои проекты. Подобно Symfony , Yii тоже использует компоненты для быстрой разработки приложений. Необходимо упомянуть тот факт, что код, созданный данной структурой Yii, может раздуваться из-за неправильного обращения. Эта структура не подходит для новичков. Для юных разработчиков эта система кодирования считается относительно сложной по сравнению с другими структурами на рынке. Существует немало проблем связанных со статическими методами.

Несмотря на эти недостатки, инфраструктура Yii - невероятно мощный инструмент для разработки веб-приложений за короткий промежуток времени . Согласно статистике BuiltWith, более чем 90 стран используют данную технологию при разработке приложения Web2.0. Этот фреймворк считается сильным конкурентом на рынке благодаря своим поразительным особенностям.

Zend

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

Aura

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

Это особенно важно для тех, кто предпочитает чистое кодирование, полностью развязанные библиотеки и самоуправляющиеся пакеты. Он также обеспечивает тривиальную, систематически проверенную и стандартную структуру. Lightning App Builder позволяет перетаскивать, удалять компоненты Lightning и подключаться к различным источникам данных. Нельзя сделать фактическое создание перетаскивания в App Builder с Aura самостоятельно; для этого вы должны быть подключены к Salesforce.

Приложения, разработанные при помощи App Builder, могут подключаться к нескольким источникам данных, кроме Salesforce.

Преимущества Aura


Phalcon

Большинство разработчиков считают, что Рhalcon является полнотекстовой структурой , которая написана с использованием языка C & C ++. Эти языки повышают его производительность. Это невероятно инновационно; вот почему это одна из самых популярных платформ для разработки веб-приложений.

Расширения на Zephir/C загружаются вместе с PHP один раз, при запуске домена веб-сервера. Классы и функции предоставляемые расширением готовы к использованию в любом приложении. Благодаря его низко-уровневой архитектуре и оптимизации, Phalcon обеспечивает наименьшую нагрузку при работе MVC-приложений.

Maintainable

Поддерживаемая PHP-платформа была официально разработана для размещения личных проектов своего создателя. Однако позже был создан открытый исходный код. Подобно множеству фреймворкам, он не подходит для определённых типов приложения. Он разработан в основном для работы с приложениями малого и среднего размера . Компонент Mad_Model является реляционным объектом отображения (ORM) для структуры.

В шаблоне ActiveRecord таблицы сопоставляются классам, строкам, сопоставляемым объектам и столбцам с атрибутами объектов. Концепция близка к концепции Ruby on Rails . Все vendor библиотеки, включая поддерживаемую структуру, находятся под vendor/. Фреймворк не создает свою собственную систему плагинов или другие методы загрузки. Библиотеки находятся в каталоге и соблюдают соглашения об именах PEAR.

Библиотеки фреймворков находятся под командой vendor/ Mad/ и, следовательно, классы имеют префикс Mad_. Все приложения, созданные с использованием данной платформы, имеют одну и ту же структуру каталогов. Это обеспечивает согласованность проектов, позволяет членам команды легко переключаться между проектами и использовать различные инструменты.

Fat-free

В настоящее время это одна из самых упрощенных, легких и одна из лучших инфраструктур PHP. Она весит менее 50 КБ и считается одним из самых самых легких фреймворков PHP. Основные возможности структуры (маршрутизация URL, многоязычная поддержка приложений и механизм кеша)

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

Преимущества Fat-free


Сравним самые популярные фреймворки на одном графике.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: