Laravel

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Laravel
Логотип программы Laravel
Тип веб-фреймворк
Разработчик Тэйлор Отвел[вд]
Написана на PHP[3]
Операционная система кроссплатформенность
Первый выпуск 9 июня 2011[1]
Последняя версия
Репозиторий github.com/laravel/frame…
Лицензия лицензия MIT[4]
Сайт laravel.com (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

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

Входит в топ-3 самых популярных веб-фреймворков среди[7] всех языков программирования по версии 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 года[8], в результате перенумерации релиза 4.3[источник?]. Новые возможности в выпуске Laravel 5 включают поддержку планирования периодически выполняемых задач через пакет Scheduler, слой абстракции Flysystem, который позволяет использовать удаленное хранилище так же, как и локальные файловые системы, улучшенную обработку активов пакета через Elixir и упрощенная аутентификация с внешней стороны через дополнительный пакет Socialite. Laravel 5 также представил новую внутреннюю структуру дерева каталогов для разработанных приложений.

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

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 года[10][11]. Возвращен пакет Whoops для отладки ошибок с трассировкой стека вызовов, а также метод дампа данных, полученных из модели[11]. Исключения получили возможность отдавать ответ, при объявленном методе render[11]. Добавлены интерфейсы ответов (Response)[11]. Валидация запросов, перед передачей в контроллер, и пользовательские классы объявления правил валидации к нему[11]. Условные методы шаблонизатора Blade @auth и @guest[11]. Отдельные классы-фабрики для моделей, вместо единого файла[11]. Для тестирования добавили трейт RefreshDatabase[11]. Добавлена новая команда для миграции баз данных — migrate: fresh[11]. А также автоматическое обнаружение пакетов, которое избавило пользователей от необходимости регистрировать провайдеры и фасады пакета вручную[11].

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

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

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

Laravel 8.0.0 вышел 21 сентября 2020 года[15].

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

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

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

Laravel 11 вышел 12 марта 2024 года[21][22].

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

Laravel и шаблоны проектирования

[править | править код]

Возможности

[править | править код]

Ключевые особенности, лежащие в основе архитектуры Laravel[5][24]:

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

Конференции

[править | править код]

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

Примечания

[править | править код]
  1. History of Laravel PHP framework, Eloquence emerging — 2013.
  2. Release 12.43.1 — 2025.
  3. The laravel Open Source Project on Open Hub: Languages Page — 2006.
  4. The laravel Open Source Project on Open Hub: Licenses Page — 2006.
  5. 1 2 Daniel Gafitescu. Прощай CodeIgniter, здравствуй Laravel (англ.). sitepoint.com (6 июня 2013). Дата обращения: 21 декабря 2013. Архивировано 30 ноября 2020 года.
  6. Bruno Skvorc. Лучшие PHP-фреймворки 2014 (англ.). sitepoint.com (28 декабря 2013). Дата обращения: 2 января 2014. Архивировано 6 июня 2014 года.
  7. Laravel Site Real estate. Danvast Real Estate (2025).
  8. v5.0
  9. 1 2 3 4 5 6 7 8 v5.1
  10. v5.5.0
  11. 1 2 3 4 5 6 7 8 9 10 Laravel 5.5 LTS is Now Released. Laravel News (англ.). 30 августа 2017. Архивировано 30 августа 2017. Дата обращения: 31 августа 2017.
  12. https://github.com/laravel/laravel/releases/tag/v6.0.0
  13. https://github.com/laravel/laravel/releases/tag/v7.0.0
  14. Laravel 7.2 Released — Laravel News. Дата обращения: 24 марта 2020. Архивировано 24 марта 2020 года.
  15. https://github.com/laravel/laravel/releases/tag/v8.0.0
  16. Laravel 8.3 Released (англ.). Laravel News. Дата обращения: 5 мая 2021. Архивировано 5 мая 2021 года.
  17. 1 2 3 4 5 6 7 Paul Redmond (8 февраял 2022 года). Laravel 9 is Now Released!. Laravel News. Архивировано 2022-02-17. Дата обращения: 2022-02-15. {{cite news}}: Проверьте значение даты: |date= (справка)
  18. https://github.com/laravel/laravel/releases/tag/v9.0.0
  19. Laravel 10 is now released! (англ.). Laravel News (14 февраля 2023). Дата обращения: 22 сентября 2024. Архивировано 14 февраля 2023 года.
  20. https://github.com/laravel/laravel/releases/tag/v10.0.0
  21. Laravel 11 is now released! (англ.). Laravel News (13 марта 2024). Дата обращения: 22 сентября 2024. Архивировано 7 октября 2024 года.
  22. https://github.com/laravel/laravel/releases/tag/v11.0.0
  23. https://github.com/laravel/laravel/releases/tag/v12.0.0
  24. Jeffrey Way. Почему Laravel захватывает PHP-сообщество (англ.). tutsplus.com (29 ноября 2012). Дата обращения: 21 декабря 2013. Архивировано 20 декабря 2013 года.
  25. Queues - The PHP Framework For Web Artisans (англ.). laravel.com. Дата обращения: 22 августа 2022. Архивировано 24 августа 2022 года.
  26. Broadcasting - Laravel - The PHP Framework For Web Artisans. Дата обращения: 22 августа 2022. Архивировано 22 августа 2022 года.
  27. Laravel Sail - The PHP Framework For Web Artisans (англ.). laravel.com. Дата обращения: 22 августа 2022. Архивировано 22 августа 2022 года.
  28. 20+ Best Laravel Admin Panel Generators " CSS Author. Дата обращения: 24 марта 2020. Архивировано 24 марта 2020 года.
  29. Josh v7.1 — шаблон для Laravel (админка + сайт + CRUD) " Всё для вебмастера. Создание и раскрутка сайта, скрипты, шаблоны и CMS. Дата обращения: 24 марта 2020. Архивировано 24 марта 2020 года.
  30. Вики Laravel (англ.). laravel.io. Дата обращения: 2 января 2014. Архивировано из оригинала 6 февраля 2014 года.
  31. Laracon EU 2013 (англ.). laracon.eu. Дата обращения: 2 января 2014. Архивировано 26 декабря 2013 года.
  32. Сайт Userscape (англ.). userscape.com. Дата обращения: 2 января 2014. Архивировано 4 января 2014 года.

Литература

[править | править код]