Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC ( — модель-представление-контроллер). Laravel выпущен под лицензией MIT.

Исходный код проекта размещается на GitHub. В результате опроса sitepoint.com в декабре 2013 года о самых популярных PHP-фреймворках Laravel занял место самого многообещающего проекта на 2014 год.

Входит в топ-3 самых популярных веб-фреймворков среди всех языков программирования по версии wappalyzer

История Laravel был создан Тейлором Отвеллом как более функциональная альтернатива CodeIgniter, который не предусматривал различные дополнительные функции. Первый бета-релиз Laravel стал доступен 9 июня 2011 года, а Laravel 1 вышел в этом же месяце. Laravel 1 включал в себя встроенную поддержку для аутентификации, локализации, моделей, представления, сессий, маршрутизации и других механизмов.

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

Laravel 3 был выпущен в феврале 2012 года с набором новых функций, включая интерфейс командной строки (CLI) под именем «Artisan», встроенную поддержку нескольких систем управления базами данных, миграции баз данных в виде контроля версий, обработку событий. Выпуск Laravel 3 получил значительное увеличение числа пользователей, что повлияло на его популярность.

Laravel 4 был выпущен в мае 2013 года. Были произведены существенные изменения структуры Laravel: отдельные модули выделены в набор отдельных пакетов, распространяемых через Composer. Такая компоновка улучшила расширяемость Laravel 4. Внедрено регулярное расписание релизов: каждые шесть месяцев между небольшими выпусками. Другие новые функции в выпуске Laravel 4 включают в себя выгрузку таблиц базы данных для первоначальной популяции, поддержку очередей сообщений, встроенную поддержку отправки различных типов электронной почты и поддержку «мягкого» удаления записей базы данных.

Laravel 5 был выпущен в 14 сентября 2015 годаv5.0, в результате перенумерации релиза 4.3. Новые возможности в выпуске Laravel 5 включают поддержку планирования периодически выполняемых задач через пакет Scheduler, слой абстракции Flysystem, который позволяет использовать удаленное хранилище так же, как и локальные файловые системы, улучшенную обработку активов пакета через Elixir и упрощенная аутентификация с внешней стороны через дополнительный пакет Socialite. Laravel 5 также представил новую внутреннюю структуру дерева каталогов для разработанных приложений.

Laravel 5.1, выпущенный в июне 2015 года. Является первым выпуском Laravel для долгосрочной поддержки (LTS) с запланированной возможностью исправления ошибок и безопасности в течение трех лет. Была полностью переработана документация. Внедрён стандарт форматирования кода PSR-2. В шаблонизаторе Blade стало доступно обращение к сервисам. Добавлены широковещательные (Broadcasting) события через сокеты. Добавлен пакет для тестирования Laracast. Переименование каталога Handlers в Listeners для обработчиков событий.

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

Laravel 5.4, выпущенный 14 мая 2017 года. В этом выпуске есть много новых функций, таких как Laravel Dusk, Laravel Mix, Blade Components и Slots, Markdown Emails, автоматические фасады, улучшения маршрута.

Laravel 5.5, выпущенный 6 сентября августа 2017 года. Возвращен пакет Whoops для отладки ошибок с трассировкой стека вызовов, а также метод дампа данных, полученных из модели. Исключения получили возможность отдавать ответ, при объявленном методе render. Добавлены интерфейсы ответов (Response). Валидация запросов, перед передачей в контроллер, и пользовательские классы объявления правил валидации к нему. Условные методы шаблонизатора Blade @auth и @guest. Отдельные классы-фабрики для моделей, вместо единого файла. Для тестирования добавили трейт RefreshDatabase. Добавлена новая команда для миграции баз данных — migrate: fresh. А также автоматическое обнаружение пакетов, которое избавило пользователей от необходимости регистрировать провайдеры и фасады пакета вручную.

Laravel 6.0 вышел 9 сентября 2019 года

Laravel 7.0 вышел 3 марта 2020 года

Laravel 7.2 вышел 19 марта 2020.

Laravel 8.0.0 вышел 21 сентября 2020 годаhttps://github.com/laravel/laravel/releases/tag/v8.0.0.

Laravel 8.3 вышел 16 сентября 2020 года.

Laravel 9.0.0 вышел 8 февраля 2022 года. Требует минимальной версии PHP 8.0, что означает введение типизации. Релизный цикл изменяется с полугодичного до ежегодного, из-за зависимостей от пакетов Symfony, чтобы успеть поставить свежие версии, в рамках релиза, не ожидая следующего релиза. Добавлены группы маршрутов контроллера, обновлённую страницу ошибок по умолчанию, движок базы данных Laravel Scout, интеграцию с почтовым сервисом из SwiftMailer в Symfony Mailer, обновление пакета Flysystem до версии 3.x. Улучшение мутаторов и аксессоров Eloquent. В шаблонизатор Blade добавлены директивы @checked и @disabled, а так же отображение встроенных шаблонов. Для тестирования добавлен аргумент --coverage, для отображения покрытия в терминале.

Laravel 10 вышел 14 февраля 2023 года.

Laravel 11 вышел 12 марта 2024 годаhttps://github.com/laravel/laravel/releases/tag/v11.0.0.

Laravel 12 вышел 24 февраля 2025 года.

Laravel 13 вышел 17 марта 2026 годаhttps://github.com/laravel/laravel/releases/tag/v13.0.0.

Laravel и шаблоны проектирования ActiveRecord MVC Singleton (Одиночка) Factory (Фабрика) Registry (Регистр) Front Controller (Фронт-Контроллер, единая точка входа) Facade (Фасад) Presenter (Декоратор) Dependency Injection (DI) Service Locator

Возможности Ключевые особенности, лежащие в основе архитектуры Laravel:

Пакеты () — позволяют создавать и подключать модули в формате Composer к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей. Eloquent ORM — реализация шаблона проектирования ActiveRecord на PHP. Позволяет строго определить отношения между объектами базы данных. Стандартный для Laravel построитель запросов Fluent поддерживается ядром Eloquent. Логика приложения — часть разрабатываемого приложения, объявленная либо при помощи контроллеров, либо маршрутов (функций-замыканий). Синтаксис объявлений похож на синтаксис, используемый в каркасе Sinatra. Обратная маршрутизация связывает между собой генерируемые приложением ссылки и маршруты, позволяя изменять последние с автоматическим обновлением связанных ссылок. При создании ссылок с помощью именованных маршрутов Laravel автоматически генерирует конечные URL. REST-контроллеры — дополнительный слой для разделения логики обработки GET- и POST-запросов HTTP. Очереди (фоновая обработка заданий) — позволяет выполнять задачи без замедления пользовательского интерфейса или API-ответов, в отдельном фоновом процессе (или нескольких), с возможностью создания нескольких очередей и разделения их по приоритету. WebSockets broadcasting (фоновое вещание событий) — используются для реализации пользовательских интерфейсов, обновляемых в режиме реального времени, предоставляет более эффективную альтернативу постоянному опросу сервера вашего приложения на предмет изменений данных. Автозагрузка классов — механизм автоматической загрузки классов PHP без необходимости подключать файлы их определений в include. Загрузка по требованию предотвращает загрузку ненужных компонентов; загружаются только те из них, которые действительно используются. Составители представлений () — блоки кода, которые выполняются при генерации представления (шаблона). Инверсия управления () — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения объектов-одиночек (). Миграции — система управления версиями для баз данных. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД, что упрощает развёртывание и обновление приложения. Модульное тестирование (юнит-тесты) — играет очень большую роль в Laravel, который сам по себе содержит большое число тестов для предотвращения регрессий (ошибок вследствие обновления кода или исправления других ошибок). Встроенный пакет для Docker — позволяет вести разработку и использовать веб-приложения без настройки среды окружения, для работы нужно установленное ПО Docker. Пагинация, Страничный вывод () — упрощает генерацию страниц, заменяя различные способы решения этой задачи единым механизмом, встроенным в Laravel. Поддержка NoSQL СУБД Redis с интуитивно понятным представлением ORM. Множество готовых админ-панелей, шаблонов и CRUD. Поддержка шаблонизаторов Blade и Twig. Возможность подключать CSS шаблоны.

Конференции Laracon — общее имя конференций, посвящённых фреймворку Laravel. Первая конференция состоялась в Вашингтоне, США, 22—23 февраля 2013. Вторая — в Амстердаме, Нидерланды, 30—31 августа 2013 и была первой европейской Laracon. Третья конференция была проведена в Нью-Йорке, США, 15—16 мая 2014. Все эти конференции организованы с активным участием UserScape и с помощью от различных спонсоров.

См. также CodeIgniter Symfony Sinatra Yii

Примечания

Литература

Ссылки Официальный сайт — Laravel.com Репозиторий пакетов для Laravel Сайт русского сообщества Laravel Конференция Laracon Обновляемый справочник по пакетам и руководствам для Laravel Чат Telegram для начинающих Laravel-программистов — Laravel для начинающих Уроки Laravel на русском языке Инструменты для разработки на Laravel Рейтинг фреймворков 2019 Laravel Docs - документация на русском языке

Категория:Веб-фреймворки на PHP Категория:Свободные библиотеки программ Категория:Свободное кроссплатформенное программное обеспечение Категория:Программное обеспечение с лицензией MIT Категория:Генераторы программного кода