Laravel
— бесплатный веб-
фреймворк
с
открытым кодом
, предназначенный для разработки с использованием архитектурной модели
MVC
(
англ.
Model View Controller
— модель-представление-контроллер). Laravel выпущен под
лицензией MIT
.
Исходный код проекта размещается на
GitHub
.
В результате опроса
sitepoint.com
в декабре 2013 года о самых популярных
PHP
-фреймворках Laravel занял место самого многообещающего проекта на 2014 год
.
В 2015 году в результате опроса
sitepoint.com
по использованию
PHP
-фреймворков среди программистов занял первое место в номинациях:
Фреймворк корпоративного уровня
Фреймворк для личных проектов
Кладезь антипаттернов
Содержание
История
Laravel был создан Taylor Otwell как более функциональная альтернатива
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 был выпущен в феврале 2015 года в результате внутренних изменений, которые закончились перенумерацией релиза Laravel 4.3 в будущем. Новые возможности в выпуске Laravel 5 включают поддержку планирования периодически выполняемых задач через пакет Scheduler, слой абстракции Flysystem, который позволяет использовать удаленное хранилище так же, как и локальные файловые системы, улучшенную обработку активов пакета через Elixir и упрощенная аутентификация с внешней стороны через дополнительный пакет Socialite. Laravel 5 также представил новую внутреннюю структуру дерева каталогов для разработанных приложений.
Laravel 5.1, выпущенный в июне 2015 года. Является первым выпуском Laravel для долгосрочной поддержки (LTS) с запланированной возможностью исправления ошибок в течение трех лет и исправлений безопасности в течение трех лет.
Laravel 5.3, выпущенный 23 августа 2016 года. Новые функции в 5.3 сосредоточены на улучшении скорости разработки, добавив дополнительные усовершенствования для отдельных задач.
Laravel 5.4, выпущенный 24 января 2017 года. В этом выпуске есть много новых функций, таких как Laravel Dusk, Laravel Mix, Blade Components и Slots, Markdown Emails, автоматические фасады, улучшения маршрута.
Laravel 5.5, выпущенный 30 августа 2017 года. Возвращен пакет Whoops для отладки ошибок. Из нововведений, метод обработки запроса, новые директивы для шаблонизатора Blade, новая команда для миграции баз данных —
migrate: fresh
.
Ключевые особенности, лежащие в основе архитектуры Laravel
:
Пакеты
(
англ.
packages
) — позволяют создавать и подключать модули в формате
Composer
к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей.
Логика приложения
— часть разрабатываемого приложения, объявленная либо при помощи контроллеров, либо маршрутов (
функций-замыканий
). Синтаксис объявлений похож на синтаксис, используемый в
каркасе
Sinatra
.
Обратная маршрутизация
связывает между собой генерируемые приложением ссылки и маршруты, позволяя изменять последние с автоматическим обновлением связанных ссылок. При создании ссылок с помощью именованных маршрутов Laravel автоматически генерирует конечные
URL
.
REST
-контроллеры
— дополнительный слой для разделения логики обработки GET- и POST-запросов
HTTP
.
Очереди
(фоновая обработка заданий) — позволяет выполнять задачи без замедления пользовательского интерфейса или API-ответов, в отдельном фоновом процессе (или нескольких), с возможностью создания нескольких очередей и разделения их по приоритету.
WebSockets broadcasting
(фоновое вещание событий) — используются для реализации пользовательских интерфейсов, обновляемых в режиме реального времени, предоставляет более эффективную альтернативу постоянному опросу сервера вашего приложения на предмет изменений данных.
Автозагрузка классов
— механизм автоматической загрузки классов
PHP
без необходимости подключать файлы их определений в
include
. Загрузка по требованию предотвращает загрузку ненужных компонентов; загружаются только те из них, которые действительно используются.
Составители представлений
(
англ.
view composers
) — блоки кода, которые выполняются при генерации представления (шаблона).
Инверсия управления
(
англ.
Inversion of Control
) — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения
объектов-одиночек
(
англ.
singleton
).
Миграции
—
система управления версиями
для
баз данных
. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД, что упрощает развёртывание и обновление приложения.
Модульное тестирование
(
юнит-тесты
) — играет очень большую роль в Laravel, который сам по себе содержит большое число тестов для предотвращения
регрессий
(ошибок вследствие обновления кода или исправления других ошибок).
Встроенный пакет для Docker
— позволяет вести разработку и использовать веб-приложения без настройки среды окружения, для работы нужно установленное
ПО Docker
.
Пагинация
,
Страничный вывод
(
англ.
pagination
) — упрощает генерацию страниц, заменяя различные способы решения этой задачи единым механизмом, встроенным в Laravel.
Laracon
— общее имя конференций, посвящённых фреймворку Laravel. Первая конференция состоялась в
Вашингтоне
,
США
, 22—23 февраля 2013. Вторая — в
Амстердаме
,
Нидерланды
, 30—31 августа 2013 и была первой европейской Laracon. Третья конференция была проведена в
Нью-Йорке
,
США
, 15—16 мая 2014. Все эти конференции организованы с активным участием UserScape и с помощью от различных спонсоров
.
↑
Daniel Gafitescu.
(неопр.)
. sitepoint.com (6 июня 2013). Дата обращения: 21 декабря 2013.
30 ноября 2020 года.
Bruno Skvorc.
(неопр.)
. sitepoint.com (28 декабря 2013). Дата обращения: 2 января 2014.
6 июня 2014 года.
.
Laravel News
(англ.)
. 2017-08-30.
из оригинала
30 августа 2017
. Дата обращения:
31 августа 2017
.
(неопр.)
. Дата обращения: 24 марта 2020.
24 марта 2020 года.
(англ.)
.
Laravel News
. Дата обращения: 5 мая 2021.
5 мая 2021 года.
Paul Redmond (8 февраял 2022 года).
.
Laravel News
.
из оригинала
17 февраля 2022
. Дата обращения:
15 февраля 2022
.
{{
cite news
}}
:
Проверьте значение даты:
|date=
(
справка
)
Jeffrey Way.
(неопр.)
. tutsplus.com (29 ноября 2012). Дата обращения: 21 декабря 2013.
20 декабря 2013 года.
(англ.)
.
laravel.com
. Дата обращения: 22 августа 2022.
24 августа 2022 года.
(неопр.)
. Дата обращения: 22 августа 2022.
22 августа 2022 года.
(англ.)
.
laravel.com
. Дата обращения: 22 августа 2022.
22 августа 2022 года.
(неопр.)
. Дата обращения: 24 марта 2020.
24 марта 2020 года.
(неопр.)
. Дата обращения: 24 марта 2020.
24 марта 2020 года.
(неопр.)
. laravel.io. Дата обращения: 2 января 2014. Архивировано из
6 февраля 2014 года.
(неопр.)
. laracon.eu. Дата обращения: 2 января 2014.
26 декабря 2013 года.
(неопр.)
. userscape.com. Дата обращения: 2 января 2014.
4 января 2014 года.