От автора: PHP — наиболее популярный в мире серверный скриптовый язык. Он прошел большой путь развития от небольших, встраиваемых в код статических HTML-страниц, сниппетов — до современного языка, на котором разрабатывается большинство современных динамических сайтов.
Cложность и функциональность веб-проектов все время возрастает, и ни у кого нет желания писать весь необходимый код с нуля. Программистам необходимо разрабатывать сложные сайты и веб-приложения, а это обычно занимает очень много времени. Чтобы программистам облегчить процесс разработки, начали создавать фреймворки.
Laravel – это фреймворк для web-приложений с выразительным и элегантным синтаксисом. Он позволит упростить решение основных наболевших задач, таких как аутентификация, маршрутизация, сессии, кэширование, архитектура приложения, работа с базой данных и т.д.
Laravel – это попытка объединить все самое лучшее, что есть в других PHP-фреймворках. Это еще и огромное количество дополнительных сервисов, объединенных в единую экосистему. Например, Forge — специальный хостинг для приложений и сайтов. Homestead, Envoyer — простая и удобная система для Zero Downtime деплоя в Production. Horizon — админка для мониторинга Redis. Spark, StyleCI, Statamic и многие другие сервисы упростят разработку приложений.
Основные преимущества Laravel:
большая экосистема с мгновенным разворачиванием своей платформы;
официальный сайт предоставляет множество мануалов и информации для ознакомления;
документация Laravel близка к совершенству;
есть свой движок для шаблонов Blade;
«красивый» синтаксис языка, который способствует выполнению необходимых задач (например, аутентификации, сессии, кэшированию и маршрутизации RESTful);
собственная ORM – Eloquent ORM, предлагающая простые и удобные средства для работы с БД;
великолепная система маршрутизации запросов.
Отдельно стоит сказать и о преимуществах встроенных механизмов.
Во-первых, Laravel имеет понятный механизм обработки исключений.
Во-вторых, интегрированные механизмы авторизации и аутентификации можно перенастраивать под конкретные требования.
В-третьих, этот фреймворк предоставляет удобные механизмы для кэширования интернет-приложений.
Говоря о преимуществах, также стоит напомнить о простоте и доступности программного интерфейса для отправки почты посредством облачной или локальной службы.
Наконец, этот фреймворк предоставляет свободный доступ к сервисам биллинга по подпискам Braintree и Stripe.
Популярность
Чтобы оценить популярность фреймворка, предлагаем обратиться к нескольким источникам статистики использования.
Популярность по статистике запросов, которую предоставляет Google Trends:
Как видно из графика популярности Google Trends, фреймворк Laravel занимает уверенное первое место и постоянно набирает популярность, не сбавляя обороты. Что, в общем, очень хорошо — учитывая, что это общемировая статистика.
Если мы возьмем статистику запросов в Google Trends по России, то картинка сильно не изменится:
Как видно из графика, в 2016 году Laravel перехватил лидерство у фреймворка Yii2 и не только продолжает до сих пор удерживать его, но и набирает популярность.
Это значит, что большинство новых проектов в стране теперь создаются с использованием активно-развивающегося Laravel. Учитывая тренды, если вы давно хотели начать учить Laravel — то сейчас это сделать просто необходимо.
Возможности
Пакеты — позволяют создавать и подключать модули в формате Composer к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей.
Eloquent ORM — реализация шаблона проектирования ActiveRecord на PHP. Позволяет строго определить отношения между объектами базы данных. Стандартный для Laravel построитель запросов Fluent поддерживается ядром Eloquent.
Логика приложения — часть разрабатываемого приложения, объявленная либо при помощи контроллеров, либо маршрутов.
Обратная маршрутизация связывает между собой генерируемые приложением ссылки и маршруты, позволяя изменять последние с автоматическим обновлением связанных ссылок. При создании ссылок с помощью именованных маршрутов Laravel автоматически генерирует конечные URL.
REST-контроллеры — дополнительный слой для разделения логики обработки GET- и POST-запросов HTTP.
Автозагрузка классов — механизм автоматической загрузки классов PHP без необходимости подключать файлы их определений в include. Загрузка по требованию предотвращает загрузку ненужных компонентов — загружаются только те из них, которые действительно используются.
Составители представлений — блоки кода, которые выполняются при генерации представления (шаблона).
Инверсия управления — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения объектов-одиночек.
Миграции — система управления версиями для баз данных. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД — это упрощает развертывание и обновление приложения.
Модульное тестирование (юнит-тесты) — играет очень большую роль в 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 предлагает API Laravel Mix для работы с Webpack, который позволит собрать ресурсы вашего приложения.
Сообщество и документация
Сегодня каждый фреймворк имеет большое и дружное сообщество, и Laravel — не исключение. Люди, поддерживающие и разрабатывающие Laravel-пакеты, очень дружелюбны — вы легко можете участвовать в создании любого пакета, и ваши правки будут приняты очень скоро.
Это способствует расширению сообщества — и вам стоит знать, что Laravel был внесен в список самых популярных PHP-фреймворков в 2013 году, опередив Phalcon, Symfony2 и CodeIgniter. А в августе 2014 года Laravel стал самым популярным и просматриваемым PHP-проектом на GitHub. И сейчас он только продолжает набирать популярность.
Вывод
Laravel является самым популярным фреймворком на сегодняшний день и продолжает стремительно развиваться. Сейчас это огромная экосистема, включающая хостинг и платформу для развертывания приложений.
Сегодня больше всего проектов, создаваемых с помощью фреймворков, создаются именно с использованием Laravel. При размещении вакансий PHP-разработчиков, веб-студии все чаще включают знание фреймворка Laravel, как обязательное условие. Поэтому если вы до сих пор не знакомы с этим замечательным фреймворком, то сейчас самое время начать его изучение.
P.S. Вы используете фреймворки при разработке своих проектов? Если нет, то хотели бы освоить и использовать фреймворки?