Laravel — лидер среди PHP фреймворков

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

Laravel — это фреймворк для web-приложений с выразительным и элегантным синтаксисом. Он позволит упростить решение основных наболевших задач, таких как аутентификация, маршрутизация, сессии и кэширование. Laravel — это попытка объединить всё самое лучшее, что есть в других PHP фреймворках. Основные преимущества Laravel:

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

документация Laravel близка к совершенству;

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

Несмотря на свою молодость (первый релиз вышел в 2011 году), это уже совершенно зрелый продукт, и, согласно опросу, проведенному порталом SitePoint, он занимает первое место по популярности среди разработчиков на PHP.

Популярность фреймворка Laravel

Для того чтобы оценить популярность фреймворка, предлагаю обратиться к нескольким источникам статистики использования. Статистика популярности от Sitepoin за 2015 год.

Популярность по статистике запросов, которую предоставляет Google Trends.

Как видно из графиков и статистики от SitePoint, а также статистике Google Trends, фреймворк Laravel занимает уверенное первое место и постоянно набирает популярность, не сбавляя обороты. Что, в общем, очень хорошо, учитывая, что это общемировая статистика.

Если мы возьмем статистику запросов в Google Trends по России, то картинка несколько изменится:

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

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

Возможности Laravel

Пакеты — позволяют создавать и подключать модули в формате Composer к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей.

Eloquent ORM — реализация шаблона проектирования ActiveRecord на PHP. Позволяет строго определить отношения между объектами базы данных. Стандартный для Laravel построитель запросов Fluent поддерживается ядром Eloquent.

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

REST-контроллеры — дополнительный слой для разделения логики обработки GET- и POST-запросов HTTP.

Автозагрузка классов — механизм автоматической загрузки классов PHP без необходимости подключать файлы их определений в include. Загрузка по требованию предотвращает загрузку ненужных компонентов; загружаются только те из них, которые действительно используются.

Составители представлений — блоки кода, которые выполняются при генерации представления (шаблона).
Инверсия управления — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения объектов-одиночек.

Миграции — система управления версиями для баз данных. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД, что упрощает развёртывание и обновление приложения.

Модульное тестирование (юнит-тесты) — играет очень большую роль в Laravel, который сам по себе содержит большое число тестов для предотвращения ошибок.

Страничный вывод — упрощает генерацию страниц, заменяя различные способы решения этой задачи единым механизмом, встроенным в Laravel.

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

Laravel — это особенный фреймворк с сильным брендингом, поэтому почти всё особенное в Laravel имеет уникальное название.

Dotenv

Где вы храните секретную информацию вашего приложения, такую как пароль от БД, логин для email и другие вещи? Laravel 5 использует хорошо известный файл .env, который также используют многие фреймворки для других языков программирования. Это файл, в котором вы определяете пары ключ-значение для любой вашей секретной информации.

PSR-4

Laravel — первый фреймворк, поддерживающий PSR-4. Прямо из коробки Composer автоматически загрузит все классы из каталога app, используя стандарт автозагрузки PSR-.

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

IoC-контейнер — расширения ядра

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

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

Запросы форм

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

Eloquent

Eloquent ORM, включённая в Laravel, — наиболее мощная реализация шаблона ActiveRecord в PHP. Кроме обычных CRUD-операций, в ней есть мягкое удаление, области запросов, отношения, методы доступа и мутаторы, мутаторы дат, наблюдатели модели и многое другое.

Цикл версий

У Laravel очень предсказуемый цикл версий. Через каждые шесть месяцев можно ждать очередной версии. Laravel выходит через один месяц после выхода Symfony.

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

SSH задачи

В Laravel есть простой способ для SSH-подключений к удалённым серверам и запуска команд, что позволяет вам легко создавать задачи, которые работают на удалённых серверах.

Flysystem

Flysystem — восхитительный пакет из Лиги выдающихся пакетов для управления файловыми системами. Это файловая система, использующая коннекторы, с помощью которой вы легко можете взаимодействовать с local, awss3, dropbox, rackspace и другими файловыми системами в облаке.

Если вы пользовались новейшими технологиями для фронтенда последние несколько лет, то, вероятно, вы использовали препроцессор для ваших файлов CSS и JavaScript. Но если нет, то Laravel об этом позаботится.

Вам нужна максимально оптимизированная онлайн-версия вашего приложения. Это значит, что вам надо уменьшать и комбинировать ваши файлы CSS и JavaScript.

Вместо использования для этого каких-либо PHP-пакетов, Laravel предлагает пакет Elixir для исполнителя задач NodeJS Gulp. Поэтому вы можете использовать все те преимущества NodeJS и Gulp, которые вам нравятся.

Вы запускаете Gulp-задачу watch, и Elixir позаботится обо всём для вас. Если вы используете LESS и CoffeeScript:

compiled.php

Любой полнофункциональный фреймворк загружается с тысячей файлов и объявлений. По большей части, все они обрабатываются автозагрузкой Composer, но для наиболее используемых файлов Artisan может создать файл compiled.php, который загружается при каждом запросе и объединяет все классы, используемые в вашем приложении.

Наиболее используемые файлы и классы компилируются в один-единственный файл, который значительно уменьшает время загрузки приложения. Если у вас есть файлы, которые требуется загружать при каждом запросе, вы также можете указать, какие файлы компилировать в compiled.php.

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

HHVM

Когда вы захотите повысить производительность вашего PHP-кода, вы можете сменить PHP-окружение на высокооптимизированную среду исполнения для PHP от Facebook — HHVM.

Laravel — один из первых фреймворков, поддерживающих HHVM, и он проходит 100% юнит-тестов на HHVM. Поэтому вы можете быть уверены, что легко можете переключить ваше приложение с PHP на HHVM и получить ещё больше производительности.

Cashier

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

В дополнение к основному управлению подписками, Cashier может обрабатывать купоны, подмену подписок, «количество» подписок, периоды скидок и даже генерировать PDF-файлы счетов.

Сообщество и документация

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

Это способствует расширению сообщества, и вам стоит знать, что Laravel был внесён в список самых популярных PHP-фреймворков в 2013 году, опередив Phalcon, Symfony2 и CodeIgniter. А в августе 2014 года Laravel стал самым популярным и просматриваемым PHP-проектом на GitHub.

Вывод

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