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 и шаблоны проектирования
[править | править код]- ActiveRecord
- MVC
- Singleton (Одиночка)
- Factory (Фабрика)
- Registry (Регистр)
- Front Controller (Фронт-Контроллер, единая точка входа)
- Facade (Фасад)
- Presenter (Декоратор)
- Dependency Injection (DI)
- Service Locator
Возможности
[править | править код]Ключевые особенности, лежащие в основе архитектуры 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].
См. также
[править | править код]Примечания
[править | править код]- ↑ History of Laravel PHP framework, Eloquence emerging — 2013.
- ↑ Release 12.43.1 — 2025.
- ↑ The laravel Open Source Project on Open Hub: Languages Page — 2006.
- ↑ The laravel Open Source Project on Open Hub: Licenses Page — 2006.
- ↑ 1 2 Daniel Gafitescu. Прощай CodeIgniter, здравствуй Laravel (англ.). sitepoint.com (6 июня 2013). Дата обращения: 21 декабря 2013. Архивировано 30 ноября 2020 года.
- ↑ Bruno Skvorc. Лучшие PHP-фреймворки 2014 (англ.). sitepoint.com (28 декабря 2013). Дата обращения: 2 января 2014. Архивировано 6 июня 2014 года.
- ↑ Laravel Site Real estate. Danvast Real Estate (2025).
- ↑ v5.0
- ↑ 1 2 3 4 5 6 7 8 v5.1
- ↑ v5.5.0
- ↑ 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.
- ↑ https://github.com/laravel/laravel/releases/tag/v6.0.0
- ↑ https://github.com/laravel/laravel/releases/tag/v7.0.0
- ↑ Laravel 7.2 Released — Laravel News. Дата обращения: 24 марта 2020. Архивировано 24 марта 2020 года.
- ↑ https://github.com/laravel/laravel/releases/tag/v8.0.0
- ↑ Laravel 8.3 Released (англ.). Laravel News. Дата обращения: 5 мая 2021. Архивировано 5 мая 2021 года.
- ↑ 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=(справка) - ↑ https://github.com/laravel/laravel/releases/tag/v9.0.0
- ↑ Laravel 10 is now released! (англ.). Laravel News (14 февраля 2023). Дата обращения: 22 сентября 2024. Архивировано 14 февраля 2023 года.
- ↑ https://github.com/laravel/laravel/releases/tag/v10.0.0
- ↑ Laravel 11 is now released! (англ.). Laravel News (13 марта 2024). Дата обращения: 22 сентября 2024. Архивировано 7 октября 2024 года.
- ↑ https://github.com/laravel/laravel/releases/tag/v11.0.0
- ↑ https://github.com/laravel/laravel/releases/tag/v12.0.0
- ↑ Jeffrey Way. Почему Laravel захватывает PHP-сообщество (англ.). tutsplus.com (29 ноября 2012). Дата обращения: 21 декабря 2013. Архивировано 20 декабря 2013 года.
- ↑ Queues - The PHP Framework For Web Artisans (англ.). laravel.com. Дата обращения: 22 августа 2022. Архивировано 24 августа 2022 года.
- ↑ Broadcasting - Laravel - The PHP Framework For Web Artisans. Дата обращения: 22 августа 2022. Архивировано 22 августа 2022 года.
- ↑ Laravel Sail - The PHP Framework For Web Artisans (англ.). laravel.com. Дата обращения: 22 августа 2022. Архивировано 22 августа 2022 года.
- ↑ 20+ Best Laravel Admin Panel Generators " CSS Author. Дата обращения: 24 марта 2020. Архивировано 24 марта 2020 года.
- ↑ Josh v7.1 — шаблон для Laravel (админка + сайт + CRUD) " Всё для вебмастера. Создание и раскрутка сайта, скрипты, шаблоны и CMS. Дата обращения: 24 марта 2020. Архивировано 24 марта 2020 года.
- ↑ Вики Laravel (англ.). laravel.io. Дата обращения: 2 января 2014. Архивировано из оригинала 6 февраля 2014 года.
- ↑ Laracon EU 2013 (англ.). laracon.eu. Дата обращения: 2 января 2014. Архивировано 26 декабря 2013 года.
- ↑ Сайт Userscape (англ.). userscape.com. Дата обращения: 2 января 2014. Архивировано 4 января 2014 года.
Литература
[править | править код]- Shawn McCool. Laravel Starter. — Packt Publishing[англ.], 2012. — 64 p. — ISBN 978-1-78216-091-5.
- Люк Веллинг, Лора Томсон. Разработка веб-приложений с помощью PHP и MySQL. — 5-е изд.. — СПб.: «Диалектика», 2019. — С. 768. — ISBN 978-5-9908911-9-7.
- Luke Welling, Laura Thomson. PHP & MySQL Web Development. — fifth edition. — «Addison-Wesley», 2017. — С. 687. — ISBN 978-0-321-83389-1.
Ссылки
[править | править код]- Официальный сайт — Laravel.com (англ.)
- Репозиторий пакетов для Laravel (англ.)
- Сайт русского сообщества Laravel
- Конференция Laracon (англ.)
- Обновляемый справочник по пакетам и руководствам для Laravel
- Чат Telegram для начинающих Laravel-программистов — Laravel для начинающих (рус.)
- Уроки Laravel на русском языке
- Инструменты для разработки на Laravel
- Рейтинг фреймворков 2019
- Laravel Docs - документация на русском языке