Обзор PHP фреймворков
На данный момент PHP – один из самых популярных скриптовых языков программирования, с помощью которого были созданы и по сей день создается большое количество различных интернет-проектов: начиная с простых сайтов и заканчивая крупными высоконагруженными проектами электронной коммерции. Высокая скорость развития интернета привели к увеличению разработки различных сайтов: визиток, корпоративных сайтов, промо-сайтов, портфолио, блогов, каталогов, порталов, форумов, интернет-магазинов, крупных индивидуальных проектов.
Чтобы облегчить процесс разработки сайтов, программисты стали повторно использовать куски кода, группируя их в различные модули и компоненты, и объединяя в специальные наборы готовых инструментов, которые получили название – фреймворки.
Фреймворк (framework) – готовый каркас с набором модулей, компонентов, расширения для быстрой, простой и качественной разработки программ.
PHP фреймворки позволяют:
- ускорить процесс разработки веб-приложений
- помогают писать простой и качественный код
- повторно использовать код в проектах
- легко масштабировать проекты
- использовать современные практики программирования
- легче тестировать программный код
- обеспечить безопасность проекта
В данной статье вы увидите список самых популярных PHP фреймворков с плюсами и минусами. Для сравнения инструментов разработки были выбраны следующие PHP фреймворки:
- Laravel
- Yii
- Symfony
- Zend Framework
- Codeigniter
И так, поехали!
Laravel
Laravel – это бесплатный PHP фреймворк с открытым исходным кодом, созданный Тейлором Отвеллом для разработки веб-приложений по архитектурному шаблону MVC.
Можно сказать, что на появление Laravel повлияли остальные PHP фреймворки.
Он был создан как альтернатива фреймворку Codeigniter (о нем будет рассказано ниже), в котором было недостаточно полезных функций для разработки веб-приложений. В качестве основы Laravel выступают компоненты другого фреймворка – Symfony (о нем также, будет рассказано ниже).
Фреймворк Laravel очень популярен среди западных разработчиков веб-приложений.
С помощью менеджера пакетов Composer, фреймворк Laravel позволяет легко устанавливать и подключать различные компоненты для использования в веб-приложении.
Реализация шаблона ActiveRecord – Eloquent ORM, позволяет установить отношения между объектами базы данных веб-приложения и выстраивать удобные запросы для манипуляции данными.
Механизм автозагрузки классов позволяет не подключать вручную файлы через include и предотвращает загрузку не используемых компонентов.
Удобная система миграций помогает упростить развертывание и обновление веб-приложения.
В Laravel есть встроенная поддержка движка шаблонов Blade, с помощью которого можно делать простые представления веб-приложения используя специальный синтаксис.
При создании приложения можно использовать Artisan – интерфейс командной строки для ввода встроенных команд, а также создания своих собственных.
В Laravel есть много полезных функций, позволяющих сделать процесс разработки веб-приложений быстрым, простым и качественным.
Из подобных функций можно отметить dd() – удобный аналог стандартной функции PHP var_dump(). Функция выводит информацию переменной в более понятной форме, разделяя данные на дерево атрибутов и значений, в возможностью поиска и перехода по ним.
- Достаточно неплохая и понятная документация.
- Вокруг фреймворка создана мощная экосистема. Различные курсы, конференции, обучающие материалы позволяют собрать вокруг фреймворка большое количество разработчиков и спонсоров, которые заинтересованы в развитии инструмента и принимают в этом участие. Да, здесь чувствуется запах маркетинга, и неплохой.
- Одним из самых очевидных плюсов Laravel, является гибкая система маршрутизации, позволяющая составить самые разные проверки маршрута веб-приложения. Вы можете выделить маршруты в специальные группы, использовать пространство имен, указать параметры маршрута, использовать регулярные выражения, настроить поддоменную маршрутизацию и многое другое.
- В Laravel много синтаксического сахара. Синтаксис API фреймворка достаточно простой и понятный. Здесь нет длинных и сложных конструкций, а только краткие и продуманные названия функций.
- Laravel содержит удобный механизм обработки ошибок и исключений.
- Фреймворк включает в себя встроенные механизмы аутентификации и авторизации пользователей, которую можно перенастроить под свои потребности.
- Laravel предоставляет из коробки механизмы для кэширования веб-приложения с помощью Memcached и Redis. Кроме этого есть удобные функции для использования простого файлового кэширования данных.
- Laravel предоставляет чистый и простой API поверх популярной библиотеки SwiftMailer с драйверами для SMTP, Mailgun, SparkPost, Amazon SES и sendmail, чтобы сделать отправку почты через локальную или облачную службу по выбору. В том числе есть механизм для построения очередей отправки почты.
- Laravel Cashier обеспечивает выразительный, свободный интерфейс к сервисам биллинга по подписке Stripe и Braintree.
- Для русскоязычных разработчиков, без знания английского языка или его слабым знанием, к минусам фреймворка можно отнести довольно небольшое количество статей, примеров кода, переводов официальной документации. Для тех, кто знает английский на уровне чтения технической документации, данный минус можно опустить.
- Синтаксический сахар в Laravel как плюс, так может быть и минусом. Очень легко привыкнуть к нему и позабыть, как пишутся чистые запросы и функции.
- Нарушение обратная совместимости между версиями фреймворка.
- Не логичное расположение каталогов и файлов. Например, по умолчанию в прямо в каталоге /app расположена модель User.php, которую логичней было бы расположить в каталоге /app/Models. Каталог resources с файлами представления размещен в корне приложения, хотя логичней будет его разместить в /app/resources.
Yii фреймворк
Yii – это бесплатный объектно-ориентированный компонентный full-stack PHP фреймворк. В основе Yii лежит другой фреймворк – PRADO, написанный на ASP.NET и впоследствии перенесенный на PHP.
Вскоре после построения новой архитектуры, фреймворк PRADO был переименован на Yii. Название фреймворка является аббревиатурой слова «Yes It Is!». Прародителем фреймворка является китайский разработчик Qiang Xue.
Yii можно использовать для разработки любого вида веб-приложений. Благодаря своей основе компонентов, архитектуре и сложной поддержки кэширования, фреймворк подходит для разработки крупномасштабных проектов, таких как порталы, форумы, системы управления контентом (CMS), систем электронной коммерции, RESTful веб-сервисов и т.д.
Yii реализует для использования MVC (Model-View-Controller) архитектурный шаблон и способствует организации кода на основе этого шаблона.
Yii является full-stack фреймворком, предоставляя множество проверенных и готовых к использованию функций: построитель запросов и ActiveRecord для реляционных и NoSQL баз данных, RESTful API, поддержку многоуровневого кэширования и т.п.
Yii чрезвычайно расширяемый фреймворк в котором можно заменить почти каждый кусочек кода и разрабатывать нужные расширения.
Yii предоставляет Gii – визуальный интерфейс для автоматической генерации контроллеров, моделей и отображений.
- Для русскоязычных разработчиков большим плюсом фреймворка, является хорошая документация, множество статей с примерами кода и сообщество.
- Yii не показатель одного человека, фреймворк подкреплен сильной командой разработчиков ядра, а также большим сообществом профессионалов постоянно способствующих развитию Yii.
- Yii способствует быстрому прототипированию веб-приложения. Он относится к инструментам RAID разработки.
- Встроенный механизм создания виджетов представления, например, для размещения на сайте различных блоков: последние посты, категории, навигация, блоки рекламы и т.п.
- Компонент приложения i18n позволяет производить автоматический перевод сообщений веб-приложения.
- Встроенная поддержка автоматической валидации форм и вывода сообщений об ошибках на основе данных из моделей веб-приложения.
- Механизм Active Record для построения реляционной обработки запросов базы данных.
- Множество готовых расширений на Github и их установка через Composer
- Встроенные виджеты для отображения данных: DetailView (строки в таблице), ListView (Список), GridView (таблицы)
- Встроенные механизмы для аутентификации, авторизации, регистрации пользователей
- Содержит встроенную и очень удобную debug панель.
- Слабая экосистема вокруг фреймворка среди англоязычного сегмента разработчиков. Сообщество слишком сильно размазано по разным местам: несколько форумов с небольшой активностью, stackoverflow и т.п.
- Хоть фреймворк и позволяет делать код простым, но далеко не элегантным. Если его синтаксис сравнивать с фреймворком Laravel, то он уступает.
- Yii отстает от языка, стандартов и других фреймворков. Новые обновления с действительно полезными функциями выходят не так часто.
- Слишком большая связанность backend и frontend частей Yii2. Фреймворк предлагает использовать библиотеку jQuery и Bootstrap, которые встроены по умолчанию в ядро фреймворка. Этот минус планируется исправить в новой версии фреймворка Yii 3, сделав его компоненты менее связанными.
- Не очень гибкая система маршрутизации: нет возможности сгруппировать роуты.
Symfony
Symfony – свободный PHP фреймворк для быстрой разработки веб-приложений и решения рутинных задач веб-программистов. Разработка и поддержка фреймворка спонсируется французской компанией Sensio.
Symfony состоит из набора не связанных между собой компонентов, которые можно использовать повторно в проектах.
С помощью Symfony было разработано множество крупных проектов:
- систем управления контентом: Magento, Drupal, Opencart
- сервис социальных закладок Delicious
- французский видеохостинг Dailymotion
- движок форума phpbb
В том числе, Symfony повлиял на разработку фреймворка Laravel, где были задействованы его компоненты.
Symfony позволяет устанавливать сторонние пакеты, библиотеки, компоненты и настраивать их с помощью конфигурации в форматах YAML, XML, PHP, а также .env файлах.
Symfony не обеспечивает компонент для работы с базой данных, но обеспечивает тесную интеграцию с библиотекой Doctrine.
Symfony предоставляет функцию почтовой программы на основе популярной библиотеки Swift Mailer. Эта почтовая программа поддерживает отправку сообщений с ваших собственных почтовых серверов, а также с использованием популярных почтовых провайдеров, таких как Mandrill, SendGrid и Amazon SES.
Механизм интернационализации позволяет установить и произвести перевод сообщений веб-приложения на основе выбранного языка или страны.
Symfony предлагает систему логирования ошибок приложения, а также подключить библиотеку логирования Monolog.
- Мощная экосистема вокруг фреймворка, с хорошим сообществом и множеством разработчиков.
- Хорошая и постоянно обновляемая документация для всех версий фреймворка.
- Множество различных не связанных компонентов для повторного использования.
- Предлагает механизм функциональных и модульных тестов для нахождения ошибок в веб-приложении.
- Подходит для сложных и нагруженных веб-проектов.электронной коммерции.
- Несмотря на хорошую документацию, фреймворк является сложным для изучения.
Zend Framework
Zend Framework – это свободный объектно-ориентированный PHP фреймворк для разработки веб-приложений, разработанный и поддерживаемый компанией Zend. Данный фреймворк как правило больше всего используют при разработке крупных коммерческих проектов.
Источник: http://unetway.com/blog/php-framework-review/
Laravel vs Symfony – выбор PHP Фреймворка
Профессиональное создание сайтов и веб-приложений зачастую осуществляется с использованием фреймворков. На современном этапе развития интернет-технологий выбрать фреймворк для веб-разработки достаточно сложно.
Для тех, кто все еще находится в поиске, предлагаем обратить внимание на пользующиеся спросом у разработчиков Laravel и Symfony.
Рассмотрим подробнее, как популярные PHP-фреймворки позволяют решить наиболее часто возникающие задачи.
Разработка на Laravel и Symfony
- Установка и запуск.
Установка Laravel может быть осуществлена несколькими способами: - Installer.
- Composer.
- копирование из веб-сервиса GitHub.
Оптимальным вариантом считается применение Composer, ставшего своеобразным стандартом в сфере PHP-фреймворков.Воспользовавшись продуктами для виртуализации VirtualBox и Vagrant, можно получить доступ к программной среде Homestead, позволяющей запускать готовое веб-окружение, которое включает все необходимые приложения: Ubuntu, PHP, MySQL, nginx, а также Redis и Memcache.
Документация Symfony предполагает установку через:Дополнительно предлагается установить AcmeDemoBundle и задать параметры индивидуального доступа к базе данных, сохранив их в соответствующий файл, а также прочие базовые настройки. - Создание сущностей
Сохранение объектов в БД и их извлечение – типичная задача, которую необходимо реализовывать для любых веб-сайтов и приложений. Разработчикам, использующим PHP-фреймворки доступны технологии ORM, которые позволяют формировать виртуальные объектные базы данных.
Laravel предоставляет систему Eloquent ORM, которая использует шаблон проектирования ActiveRecord, обеспечивающий максимально удобное взаимодействие с объектами и логику доступа к данным реляционной модели.Коробочный вариант Laravel не включает инструментарий для автоматического изменения схем БД. Наделяя существующую модель дополнительными свойствами, необходимо производить аналогичные действия в классе миграции.Для генерации функционирующих частей веб-приложений можно воспользоваться пакетом Laravel-5-Generators-Extended, который позволяет генерировать миграции, сущности, сводные таблицы, контроллеры и т.д. Синтаксис обладает выразительностью и лаконичностью, а при необходимости автодополнения кода достаточно применить пакетное решение Laravel-IDE-Helper. Symfony использует Doctrine2 ORM с шаблонами Data Mapper, Unit Of Work и Identity Map.Функционал Symfony предоставляет генератор моделей и изменения схем БД, а также отличный инструмент для скаффолдинга, который на основании заданных спецификаций в дальнейшем генерирует код для операций создания записей, их обновления и удаления. Проектор Doctrine обеспечивает гибкость выбора источников данных. Возможность создавать репозиторий, абсолютно не связанный с MySQL, и извлекать сущности из любых источников (файлов, документов, внешних сервисов). - Управление зависимостями.
Работа с зависимостями – одна из постоянно возникающих задач. Зачастую требуется создавать собственные взаимосвязи, внедрять дополнительные сервисы для быстрого и комфортного взаимодействия с ними.
Разработка на Laravel предусматривает использование IoC-контейнера обратного управления, который позволяет внедрять и управлять зависимостями классов. Высокую гибкость обеспечивает определение зависимостей во время исполнения, а также возможность их легкого изменения. Благодаря IoC можно вносить правки в исходный код ядра и осуществлять построение крупных и мощных приложений. Сервисы Symfony традиционно включаются в пакеты, например, в Acme bundle и используют форматы PHP, YAML, XML. Создавая зависимые сервисы, следует воспользоваться функцией arguments. Особый интерес представляет компонент Config, предназначенный для реализации личных конфигураций и их валидации по различным параметрам. - Кэширование.
Оптимизация веб-ресурсов предполагает эффективное решение проблем кэширования.
Исходная конфигурация Laravel имеет кэш, умеющий сериализовать массивы и объекты, сохраняя их в файловой системе. Универсальный API подходит для различных систем кэширования. Достаточно лишь указать драйвер, который нужно использовать по умолчанию. Изначально поддерживаются многие популярные backend-сервисы, среди которых Memcached и Redis. Symfony HTTP Cache базируется на HTTP-спецификации и обеспечивает кэширование веб-страниц целиком. При этом осуществляется минимум одно обращение к хранилищу данных, что негативно сказывается на работе громоздких веб-приложений.
Подведем итоги
Очевидно, что для детального сравнения и описания всех особенностей PHP-фреймворков, попросту не хватает времени. Поэтому, в статье рассмотрены базовые критерии выбора программного фреймворка.
Разработка на Laravel может быть значительно продуктивнее, чем при работе с Symfony. Легкость, логичность и структурированность синтаксиса существенно снижают временные затраты на написание кода. Многочисленные пакетные дополнения облегчают жизнь веб-разработчика и позволяют сконцентрировать внимание на особенностях конкретного проекта.
Некоторые сложности может вызвать лишь довольно сложная документация. Однако благодаря широкой распространенности движка, практически любую возникшую проблему можно решить с помощью community.
Laravel позволяет обеспечить комфортное создание сайтов любого уровня сложности, удовлетворяющее потребности бизнеса. Впрочем, Symfony также занимает свою почетную нишу среди разработчиков крупномасштабных проектов уровня Enterprice.
Заказать сайт в студии IT DEV GROUP
Разработка на Laravel от специалистов компании IT DEV GROUP – это, прежде всего многолетний опыт успешной реализации веб-проектов в соответствии со спецификой бизнес-деятельности и требованиями заказчиков.
Наличие качественного веб-ресурса – это возможность оптимизировать главные бизнес-процессы компании, улучшить систему коммуникации с персоналом, а также вывести бизнес на принципиально новый уровень развития.
Источник: https://it-devgroup.com/blog/blog-razrabotka/laravel-vs-symfony-vyibor-php-frejmvorka/
Выбор PHP фреймворка: Laravel глазами Symfony разработчика
Всем привет, меня зовут Андрей и я Симфонист. Недавно мы начали небольшой проект по дополнительной разработке к существующей SAP системе. Перед началом разработки мне предложили самостоятельно выбрать набор необходимых инструментов, и я решил посмотреть что-то кроме родной и знакомой Symfony.
Особенность проекта состояла в том, что в основном нам предстояла работа через SoapClient с веб-сервисами. C их помощью строился интерфейс для взаимодействия пользователя и небольшой части ERP системы. Никаких сложных структур под бизнес-требования строить не требовалось.
Работа с БД ограничивалась хранением данных для авторизации пользователей и поддержанием нескольких таблиц с настройками. В то же время система изначально не подразумевала дальнейшего развития во что-то большое и сложное.
По сути, требовалось реализовать тонкий клиент для работы с сервером веб-сервисов.
Нельзя сказать, что Symfony не подходил для решения задач проекта, но меня смущало количество кода, которое надо было написать, чтобы он был “Symfony way”. Поэтому я решил посмотреть в сторону более простых инструментов.
Мой выбор пал на Laravel. Если судить по отзывам в интернете, он достаточно прост в освоении, имеет большое комьюнити и хорошо показывает себя в реализации небольших и простых проектов. Чего греха таить, меня прельстило использование компонентов Symfony в фреймворке, и я давно хотел посмотреть насколько эффективно они используются в рамках других проектов.
Laravel полностью оправдал мои ожидания:
- Довольно легко и быстро устанавливается
- Прост и удобен в разработке
- Можно сразу же начать писать промышленный код
На основании моего первого впечатления я подготовил небольшой обзор фреймворка, его архитектуры и компонентов.
Laravel
Фреймворк — это некий скелет структуры проекта, предоставляющий реализованный функционал “из коробки”. Данный функционал позволяет решать наиболее типичные задачи при разработке. Архитектура фреймворка может как реализовывать некий собственный набор паттернов, так и представлять собой реализацию отдельных общеизвестных паттернов.
Архитектура Laravel строится вокруг популярного в последнее время принципа Inversion of Control >> Dependency Injection >> Service Container. Этот принцип хорошо знаком разработчикам Symfony, т.к. является краеугольным камнем всей Symfony разработки.
Service Container Laravel очень напоминает Symfony с незначительными отличиями. Это неудивительно, ведь он реализует тот же паттерн, хоть и немного иначе. В целом же надо отметить, что именно Service Container обделен вниманием в документации Laravel.
Вероятно, разработчики фреймворка не считают данный компонент центральным в его построении.
Хотя, возможно, подробное описание опущено, чтобы не усложнять документацию и предоставить разработчику возможность ориентироваться в работе с компонентом по ситуации.
Более подробно о принципе Inversion of Control и паттернах его реализующих (DependencyInjection >> Service Container; и (анти)паттерне ServiceLocator) можно посмотреть здесь:
Laravel использует часть компонентов Symfony. Это не означает, что компоненты внедряются “копипастом” и, соответственно, работают по принципу «достаточно только прочитать документацию оригинала и можно использовать».
Скорее компоненты удачно вплетены в структуру фреймворка, где-то немного изменены (обернуты), где-то дополнены и подстроены для соответствия “экосистеме” фреймворка. На самом деле, это достаточно логично, т.к.
многие компоненты Sf поставляются как готовый к использованию код и хорошо решают задачи, которые ставятся перед фреймворками на общем уровне.
Компоненты фреймворков: сравниваем Laravel и Symfony
Так как я симфонист и смотрю на все глазами симфониста, то попытаюсь сравнить решения фреймворков Laravel и Symfony.
HTTP fundamentals & MVC pattern (Controllers, Routing, Views)
Итак, давайте вернемся к корням веб-разработки, в частности к протоколу HTTP. Что бы не делал ваш серверный код, в конечном итоге он должен получить какой-то запрос, обработать его и вернуть определенный ответ.
Если использовать plain PHP, можно довольно легко запутаться, например, с телом ответа и возвратом заголовков ответа. Если вы уже давно в разработке, то стоит упомянуть “Headers already sent” и вы сразу всё поймёте.
Чтобы избежать проблем подобного рода, можно сэмулировать работу с запросом и ответом как работу с парой соответствующих классов (объектов). Компонент HTTPFoundation Symfony служит именно этой цели. Он же используется в Laravel и позволяет эмулировать работу на уровне HTTP протокола. Прост и удобен в использовании. За примерами использования welcome в документацию.
Паттерн MVС всем хорошо известен, поэтому достаточно сказать, что в Laravel он реализован. Реализован весьма стандартно: есть привычные контроллеры с actions, отдельный уровень с представлением, с использованием шаблонизатора и всё, что понимается под моделью.
Простой экшен в контроллере может выглядеть примерно так:
public function postResetPassword(Request $request) { $user = Auth::user(); if(!$user){ return redirect() ->action('AuthController@getLogin'); } $user->changed_by_user = true; $user->password = $request->input('password'); $user->save(); return redirect() ->action('UserController@getInfo', array()); }
Здесь мы проверяем, авторизован ли пользователь, и меняем его пароль. Стоит обратить внимание, что экшен принимает в качестве аргумента объект класса Request, который в свою очередь унаследован от класса Request, идущего в составе HTTPFoundation Symfony:
use SymfonyComponentHttpFoundationRequest as SymfonyRequest; class Request extends SymfonyRequest implements Arrayable, ArrayAccess
ORM Eloquent vs. Doctrine ORM
Довольно стандартной задачей при веб-разработке является сохранение объектов в базу данных и чтение из базы данных. Для работы с БД используются так называемые Модели. В Laravel процесс работы с БД осуществляется посредством ORM Eloquent.
Eloquent использует паттерн Active Record, который значительно проще паттернов DataMapper, Unit of Work и Identity Map. Последние используются в ORM Doctrine, которая является базовой ORM для Symfony.
Работа с Eloquent за счет простоты имеет множество преимуществ. Пожалуй, самые главные: немногословность при описании моделей и простота использования в коде.
При создании модели вовсе не обязательно описывать каждый аксессор, достаточно обратиться к свойству по названию поля в БД.
Пример работы с Eloquent (из официальной документации):
Источник: http://www.azoft.ru/blog/php-framework-laravel-vs-symfony/
Топ-5 PHP-фреймворков: Laravel vs Yii vs Zend vs Phalcon vs Sympfony, плюсы и минусы | статьи о программировании mkdev
Всю зиму скидка до 25% на обучение с ментором Получить скидку
FullStack Developer c 10-летним стажем, участвовал в разработке высоконагруженных проектов на Yii2, Laravel, CodeIgniter с применением MongoDB, PostgreSQL, Mysql, Redis и тестированием на PHPUnit в Unix среде
РНР-фреймворки имеют огромные возможности и уникальные экосистемы, которые подойдут под огромное количество задач. Они способны создавать лучше сформированные, безопасные и понятные приложения/вебсайты за более короткие промежутки времени.
Почему используют PHP фреймворки?
Разработчики выбирают фреймворки, потому что они ускоряют разработку, обладают безопасностью из коробки и способны масштабироваться довольно легко. Выбор правильного фреймворка, который работал бы в соответствии с вашими потребностями, может быть сложной задачей. Ниже представлены ТОП 5 самых популярных фреймворков.
Laravel
Плюсы
- Превосходная IoC (Инверсия управления)
- Удобная система миграций
- Интегрированная система модульного тестирования
- Встроенный шаблонизатор Blade
- Очень гибкое формирование роутов
- Очень гибкие возможности для написания REST API
- Очень быстро развивается
- Море документации на любую тему
- Популярен на Западе
- Консоль отладки из коробки со стеком вызовов
- RBAC
- ACL плагины
Минусы
- Большой функционал работает через фасады, и IDE-системы не видят методов и свойств в некоторых классах, показывая предупреждения
- Изучается немного сложнее Yii2
- Нет встроенных генераторов интерфейсов
Порог входа: достаточно знать ООП и базы данных
Средний уровень зарплат Laravel программистов: от 70 000 руб
Phalcon
Плюсы
- Высокая производительность
- Богатый функционал
- Хорошо подходит для Highload
- Находится в оперативной памяти
- Требует минимум файловых операций
- Потребляет мало ресурсов
- Можно пользоваться собственной базой и ее отдельными элементами
- По технологиям ORM происходит взаимодействие с базами данных, что в результате дает очень большую производительность
- Все процессы происходят довольно быстро, благодаря прямому обращению фреймворка к внутренним структурам PHP
- Можно пользоваться собственной базой и ее отдельными элементами
Минусы
- Исходный код на Си
- Пока недостаточная популярность
- Является extension (а это означает, что на шаред хостинге вы можете просто не запустить приложение)
- Многие до сих пор ещё не догадываются о существовании Phalcon
Порог входа: средний, надо знать ООП, разбираться в шаблонах проектирования и иметь практический опыт работы с проектами
Средний уровень зарплат Phalcon программистов: от 80 000 руб
Symfony
Плюсы
- Относится в той же степени к Yii. К тому же документация Symfony настаивает на том, что это не MVC-фреймворк
- Встроенная поддержка Codeception позволяет писать функциональные и приёмочные тесты
- YAML как плюс фреймворка
- Некоторые из компонентов Symfony2 теперь реализуются в больших проектах, таких как Drupal и PhpBB
- Большое сообщество разработчиков
- Много готовых модулей (бандлов)
- Подробная и понятная документация
- Достаточно высокая скорость работы ядра
- Низкая связность компонентов
Минусы
- Symfony юзает страшный и могучий ОРМ (пропел и доктрин), очень ресурсоемкий
- Высокий порог входа
- Перенасыщенность разного рода сущностями
- Интегрированный аннотационный синтаксис
Порог входа: высокий, надо знать ООП, разбираться в шаблонах проектирования и иметь практический опыт работы с проектами на других фреймворках
Средний уровень зарплат Symfony программистов: от 80 000 руб
Zend framework
Плюсы
- Наследование классов
- Объектно-ориентированная сущность
- Имеет готовое решение для множества задач
- Интегрируем все, что угодно, со всем, что пожелаем
- Интернационализация приложений
- Поддержка сообщества разработчиков
- Высокое качество документирования
Минусы
- Не подходит для быстрого развития
- Медленнее, чем некоторые другие фреймворки (но достаточно быстро для 90% сайтов, БД почти всегда является узким местом).
- Требует много времени для изучения
- Ресурсоемкий
Порог входа: высокий, надо знать ООП, разбираться в шаблонах проектирования и иметь практический опыт работы с проектами на других фреймвоорках
Средний уровень зарплат Zend программистов: от 80 000 руб
Покажу сильные и слабые стороны фреймворка Yii2, научу строить проекты любого масштаба и подскажу как искать интересные проекты на Yii2, и перейти полностью на удаленную работу. Записаться
Yii2 framework
Плюсы
- Визуальный генератор кода
- Максимально интуитивная MVC-архитектура. Особенно с нуля его учить приятно
- Использует стандартные способы решения задач, что уменьшает или устраняет запутанность кода
- Облегчает поддержку кода с использованием общей архитектуры и методов
- Имеет активное сообщество разработчиков, которые поддерживают фреймворк, обобщенные задачи и новые возможности
- Сокращает время, затрачиваемое на рутинные задачи, такие как проверка форм и безопасность
- Легко настроить для лучшей производительности
- Не требователен к ресурсам
- Различные варианты кеширования
- Простая интеграция сторонних библиотек и классов
- Качественные инструменты безопасности
- Поведения, хелперы, возможность расширения базового функционала и т.д.
- Подходит для проектов любой сложности и масштаба
Минусы
- Не очень гибкое формирование роутов
- Слишком склеенные библиотеки для frontend'а с backend'ом
Порог входа: низкий, достаточно знать ООП и базы данных
Средний уровень зарплат Zend программистов: от 80 000 руб
Мы рассказываем, как стать более лучшим разработчиком, как поддерживать и эффективно применять свои навыки. Информация о вакансиях и акциях эксклюзивно для более чем 8000 подписчиков. Присоединяйся!
Cookies помогают нам предоставлять наши услуги. Используя наши услуги, вы соглашаетесь с использованием наших cookies.<\p>
Источник: https://mkdev.me/posts/top-5-php-freymvorkov-laravel-vs-yii-vs-zend-vs-phalcon-vs-sympfony-plyusy-i-minusy
Yii VS Laravel: за каким фреймворком будущее — Офтоп на vc.ru
На западе популярнее Laravel, в СНГ – Yii. Команда Artjoker решила выяснить, стоит ли гнаться за зарубежными трендами или же нет. На каком фреймворке разрабатывать сайты?
Дисклеймер. В статье мы озвучиваем свое субъективное мнение, основанное на личном опыте и сравнительном анализе. Если вы не согласны, спецы Artjoker с удовольствием подискутируют 😉
Натолкнулись на статью 2017 года о востребованности PHP программистов на рынке труда. Да, она – старая, но в 2018 картина изменилась не существенно. В материале приведена интересная зависимость количества вакансий от типа фреймворка.
Диаграмма для СНГ –
Данные по западному рынку –
Зачем мы приводим эту информацию? Она позволяет сделать выводы как заказчикам, так и исполнителям.
Рассмотрим обе стороны. Если вы программист и хотите быть востребованным, вам необходимо либо:
- осваивать популярные инструменты;
- смотреть в завтрашний день и выбирать перспективные направления.
Если вы заказчик, вам стоит держать в фокусе несколько моментов:
- не возникнет ли дефицита кадров из-за массового отказа от устаревших фреймворков;
- насколько затратно поддерживать проект;
- с какой регулярностью выходят обновления (это влияет на производительность вашего сайта).
Именно поэтому важно сравнивать фреймворки. Посмотрите на диаграммы еще раз. CodeIgniter можно смело исключить. Он некогда был на волне, а сейчас его вытеснили более прогрессивные решения. Большое количество заказов объясняется наличием проектов, которые нуждаются в саппорте. Со временем владельцы сайтов переедут и спецы по CodeIgniter останутся без работы.
В сухом остатке выделяются 2 лидера – Yii и Laravel. Причем на территории СНГ пальма первенства принадлежит Yii. Нужно разбираться, стоит ли отечественным заказчикам и разработчикам гнаться за западными трендами или отдать предпочтение проверенному на родине фреймворку?
Плюсы и минусы Laravel
- удобно читаемые Laravel-коллекции и хелперы по работе с ними;
- storage – отдельное место в структуре для хранилища;
- eloquent – ORM для работы с базой, реализация шаблона ActiveRecord. Помимо стандартных CRUD-операций, в ней есть: методы доступа и мутаторы, безопасное удаление, области запросов, отношения, наблюдатели модели;
- artisan – позволяет управлять командной строкой,
- простая маршрутизация, валидация входящих параметров;
- интегрированный сборщик scss и скриптов (elixir);
- интегрированный шаблонизатор Blade;
- очереди заданий, планировщик задач;
- миграции и сиды;
- интегрированная система модульного тестирования phpunit;
- поддержка WebSockets для создания настоящих интерактивных приложений;
- ACL плагины;
- высокая популярность на западе;
- частые релизы новых версий.
- отсутствуют интегрированные шаблоны интерфейсов.
“Love beautiful code? We do too” – цитата с официального сайта соответствует действительности. Laravel – клад для любителей красивых решений. Код читается легко, структура файлов будет ясна даже новичку. Кстати, есть потрясные видеоуроки, основы бесплатные.
Laravel – дружественный фреймворк. Встроенные artisan-команды здорово ускоряют процесс разработки.
Ключевой момент – правильная архитектура базы данных. Во время разработки каждый из доступных роутов желательно покрывать тестами, наполнять БД тестовыми данными, придерживаться основы философии Laravel – лаконичности. Чтобы избежать нагромождения в методах контроллеров нужно использовать классы-репозитории, мутаторы и акселераторы в моделях.
Laravel дает разработчику большую свободу в выборе решений и способов их реализации. Это одновременно и хорошо, и плохо. С одной стороны облегчается процесс кодинга, с другой – увеличивает трудозатраты на разработку и согласование конвенций.
Что нужно знать заказчику о Laravel
Выбирая Laravel, вы получаете наиболее перспективный (на сегодняшний день) PHP-фреймворк. Проекты на нем, при грамотной разработке, легко расширяются.
Плюсы и минусы Yii
Преимущества Yii
- Active Form – создание форм по свойствам модели;
- использует общепринятую архитектуру и методы;
- интегрировано множество стандартных решений для интерфейсов (Kartik);
- встроены автотесты форм и безопасности;
- сравнительно просто изучить;
- реализован визуальный генератор CRUD, контроллеров, моделей (gii).
Недостатки Yii
- новые версии выходят редко;
- склеенные библиотеки фронта и бэка;
- недостаточно гибкий процесс формирования роутов.
- редко выходят новые релизы.
Личное мнение
Yii2 – отличное решение для контентных сайтов с типовыми админ-панелями и минимумом бизнес-логики. Если нужно реализовать простые манипуляции данными, то не стоит заморачиваться с Laravel. В этих случаях монолитность кода не будет проблемой и разработка на Yii2 займет меньше времени за счет уймы готовых решений.
Что нужно знать заказчику о Yii
Разработка отдельных проектов ускорится в среднем быстрее на 10% (из личного опыта).
Таблица сравнения возможностей
*- относительный параметр (из личного опыта).
Какой фреймворк лучше: Laravel или Yii
Когда речь заходит о надежности и Yii, и Laravel стоят на равных. Фреймворки обеспечивают безопасность на нескольких уровнях (включая пароли, аутентификацию, SQL-инъекции, кросс-сайтную подделку запросов, скрипты сайта и т. д.)
Если же останавливать свой выбор на чем-то одном, то мы бы советовали Laravel. Специалистам Artjoker приходилось поддерживать проекты на обоих фреймворках, но с Laravel на реализацию дополнительного функционала уходит меньше времени. Аналогично с поиском багов. На наш взгляд, все дело в лаконичности.
Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.
Написать
Источник: https://vc.ru/flood/52013-yii-vs-laravel-za-kakim-freymvorkom-budushchee
Почему мы выбрали Laravel?
Шел 2014 год. Количество и сложность наших проектов росла и наша старая самописная CMS уже не позволяла справляться с тем потоком и уровнем сайтов необходимых нашим клиентам.
Мы набирали новых программистов в команду, на некоторое время это решало проблемы, но глобально нет, не думаю что нам бы доверили разрабатывать свои сайты: http://www.president.gov.ua/, http://atl.ua/, https://credit-agricole.ua/, http://mafia.ua/ и другие, если бы у нас была старая система.
Нужна была новая CMS на базе современного PHP фреймворка!
Какие задачи должен был решать фреймворк?
- Простота в изучении. Нужно было, чтобы каждый разработчик мог за минимально потраченное количество времени освоить фреймворк и писать качественный код.
- Простота в написании кода. Код должен быть интуитивно понятным и простым, чтобы любой разработчик мог поддерживать проект.
- Скорость работы. Мы понимали, что на фреймворке скорость загрузки страниц сайтов будет ниже, чем на старой CMS, где только чистый PHP, но она должна быть в пределах 0.2 – 0.3 сек. Никто не любит долго ждать.
- Скорость написание кода. Проектов много и сроки всегда на вчера, поэтому нужна быстрая разработка сайтов.
- Безопасность. Среди наших клиентов много банков, а для них безопасность главнее всего.
- Масштабируемость. Чтобы легко можно было писать, как не большие корпоративные сайты, так и большие интернет-магазины и порталы.
- Функциональность. Из коробки должны быть доступны решения многих типичных задач.
Выбор между фреймворками
Выбор стоял между фреймворками: Laravel, Yii, Symfony. Не до фреймворки как Codeigniter и Kohana сразу отпали, сложно их вообще называть фреймворками.
Динозавра, как Zend тоже откинули сразу. На нем пишут только те кто начал на нем писать проект 15 лет назад и не могут теперь с него спрыгнуть.
Почему не Symfony и Yii?
Symfony все таки рассчитан на большие проекты, мелкие и средние проекты на нем делать, это как экскаватором картошку выкапывать :). Можно, но не сильно удобно, а нам нужен был фреймфорк на все случаи.
Yii хороший фреймворк и разработчики, которые имеют достаточный опыт с ним скажут что он лучше чем Laravel. Тоже самое только в обратную сторону скажут ларавельщики.
Но на тот момент у нас не было опыта ни в Yii, ни в Laravel, поэтому открыв документацию на Laravel и Yii, и потратив день на ее изучение мы поняли, что философия Laravel нам ближе. Вырезка из документации.
«Laravel – фреймворк для построения веб-приложений с выразительным и элегантным синтаксисом. Мы считаем, что процесс разработки только тогда наиболее продуктивен, когда работа с фреймворком приносит радость и удовольствие. Счастливые разработчики пишут лучший код.»
Почему же Laravel?
Начиная с 2013 года Laravel признан лучшим и самым популярным фреймфорком в мире.
- Синтаксис легче и элегантнее чем у конкурентов.
- Taylor Otwell (создатель Laravel), дай Бог ему здоровья за его разработку, взял лучшее из существующих PHP фреймфорков, а также Ruby on Rails, ASP.NET MVC, Sinatra и создал фреймворк, который максимально просто решает рутиные задачи программистов.
- Laravel – это full stack решение, как для back-end так и для front-end разработчиков. Для фронтенда есть из коробки система сборки laravel Mix, которая построена на Webpack, а так же js фреймворк – Vue.
- Пакеты (расширения), что дало нам возможность создавать пакеты для своих потребностей. Сейчас у нас около 15 пакетов, которые решают типичные задачи. Та же CMS у нас в виде пакета, которую можно одной командой обновить в случае выхода новых обновлений. Также существуют сотни, а может и тысячи, готовых пакетов разработчиков всего мира, поэтому нам уже не нужно изобретать велосипед каждый раз, когда приходит нестандартная задача. С большой долей вероятности пакет уже кто-то написал.
- Наличие интегрированной системы модульного тестирования phpunit, что делает наши сайты более надежными.
- Отличная документация, а также https://laracasts.com/ отличный сайт для обучения, будет полезен как новичкам так и продвинутым программистам.
- Безопасность. Возможность получить несанкционированный доступ к базе данных крайне сложно. Высокий уровень безопасности гарантирует надежную защиту от SQL- injection, атак типа XSS, CSRF.
- Всегда в тренде. Использует новейшие возможности PHP (функции замыкания, пространства имен и др.), что гарантирует лучшую производительность. В версии 5.5 по умолчанию уже PHP7.
- Eloquent ORM. Очень простая и функциональя ORM основанная на паттерне ActiveRecord.
- Большое сообщество. Решение любой проблемы можно легко найти в гугле.
Статью подготовил PHP-разработчик диджитал агентства VIS-A-VIS – Артур Щаблевский.
Источник: https://www.vis-design.com/ru/blog/pochemu-my-vybrali-php-freimvork-laravel_.htm
Лучшие PHP Фреймворки Которые Стоит Использовать в 2019 году
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
- Быстрое и функциональное ядро.
- Чистая и простая маршрутизация.
- Эффективный уровень ORM и базы данных.
- Легкая интеграция со сторонними библиотеками (AWS, экспортные библиотеки и т. Д.).
Вы можете использовать Composer или Packagist для включения библиотек в ваш проект.
- Активное и растущее сообщество, которое может обеспечить помощь в решении ваших проблем.
- Тесты вспомогательного блока из коробки.
- Асинхронные очереди и фоновые задания для длительных задач.
- Большой объем документации.
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
- Наличие лицензией MIT(огромный плюс).
- Эффективный рефакторинг драйверов баз участия данных.
- Максимально возможная поддержка PDO.
- Новейшая библиотека для работы с сессиями.
- Огромная библиотека шифрования.
- Максимально возможное покрытие кода.
- PHP 5.
4 отлично подходит для проектов любой сложности, CI по прежнему будет работать на PHP 5.2.4
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
- Имеет маленький размер.
- Имеет руководство для начала работы с фреймворком.
- Идеально подходит для работы с небольшими REST API.
- Находится в фазе активной разработки.
- Надстройки включают: HTTP-кеширование и Flash.
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
- Маленький размер.
- Молниеносно справляется с оптимизацией для маршрутизации URL-адресов, кэш-моделями, кодами.
- Фреймворк поддерживает MySQL, SQLite, MSSQL/Sybase, PostgreSQL, MongoDB, Flat-File DB.
- Наличие множества программных пакетов, в том числе юнит-тестирований.
- Среди всех возможностей можно выделить обработку исходных файлов, оптимизацию JavaScript/CSS, проверку данных, наличие Open Id.
Сравним самые популярные фреймворки на одном графике.
Источник: https://merehead.com/blog-ru/best-php-framework-2019/