Исходный код Laravel размещен на GitHub и лицензируется на условиях MIT License . [8]
История
Тейлор Отвелл создал Laravel как попытку предоставить более продвинутую альтернативу фреймворку CodeIgniter , который не предоставлял определенные функции, такие как встроенная поддержка аутентификации и авторизации пользователей . Первая бета-версия Laravel была доступна 9 июня 2011 года, а позже в том же месяце последовал релиз Laravel 1. Laravel 1 включал встроенную поддержку аутентификации, локализации , моделей , представлений , сеансов , маршрутизации и других механизмов, но не имел поддержки контроллеров , что не позволяло ему стать настоящей средой MVC . [1]
Laravel 2 был выпущен в сентябре 2011 года и принес различные улучшения от автора и сообщества. Основные новые функции включали поддержку контроллеров, что сделало Laravel 2 полностью MVC-совместимым фреймворком, встроенную поддержку принципа инверсии управления (IoC) и систему шаблонов под названием Blade . Недостатком является то, что в Laravel 2 была удалена поддержка сторонних пакетов . [1]
Laravel 3 был выпущен в феврале 2012 года с набором новых функций, включая интерфейс командной строки cmd (CLI) под названием Artisan , встроенную поддержку большего количества систем управления базами данных , миграцию баз данных как форму контроля версий для макетов баз данных, поддержку обработка событий и система упаковки под названием Bundles . Увеличение пользовательской базы и популярности Laravel совпало с выпуском Laravel 3. [1]
Laravel 4 под кодовым названием Illuminate был выпущен в мае 2013 года. Он был сделан как полная переработка фреймворка Laravel с переносом его макета в набор отдельных пакетов, распространяемых через Composer , который служит менеджером пакетов на уровне приложения . Такая компоновка улучшила расширяемость Laravel 4, что сочеталось с официальным регулярным графиком выпуска, охватывающим шесть месяцев между второстепенными выпусками . Другие новые функции в выпуске Laravel 4 включают заполнение базы данных для первоначального заполнения баз данных, поддержку очередей сообщений , встроенную поддержку отправки различных типов электронной почты и поддержку отложенного удаления записей базы данных, называемого мягким удалением . [1] [9] : 18–19
Laravel 5 был выпущен в феврале 2015 года в результате внутренних изменений, которые привели к изменению нумерации будущей версии Laravel 4.3. Новые функции в выпуске Laravel 5 включают поддержку планирования периодически выполняемых задач с помощью пакета Scheduler , уровень абстракции Flysystem , который позволяет использовать удаленное хранилище так же, как локальные файловые системы , улучшенную обработку ресурсов пакета через Elixir и упрощенная внешняя аутентификация с помощью дополнительного пакета Socialite . В Laravel 5 также представлена новая внутренняя древовидная структура каталогов для разрабатываемых приложений. [5] : 13–14 [10]
Lumen 5.0 — это первоначальная версия платформы Lumen, легкой производной Laravel, оптимизированной для скорости. [11] Этот первоначальный выпуск основан на серии PHP-компонентов Laravel 5.x, а последующие версии отражают версии Laravel, с которыми он использует общую инфраструктуру. [12] С 2022 года авторы больше не рекомендуют использовать Lumen для получения этих преимуществ и вместо этого продвигают Laravel Octane. [13]
Laravel 5.1, выпущенный в июне 2015 года, стал первым выпуском Laravel, получившим долгосрочную поддержку (LTS). Новые версии LTS планировались выпускать каждые два года. [14]
Laravel 5.3 был выпущен 23 августа 2016 года. Новые функции версии 5.3 направлены на повышение скорости разработки за счет добавления дополнительных готовых улучшений для распространенных задач. [15]
Laravel 5.4 был выпущен 24 января 2017 года и содержал множество новых функций, таких как Laravel Dusk, Laravel Mix, компоненты и слоты Blade, электронные письма Markdown, автоматические фасады, улучшения маршрутов, обмен сообщениями более высокого порядка для коллекций и многие другие. [16]
Laravel 6 был выпущен 3 сентября 2019 года. В него добавлена генерация кода схемы смен, введение семантического управления версиями, совместимость с Laravel Vapor, улучшенные ответы на авторизацию, улучшенное промежуточное программное обеспечение для заданий, ленивые коллекции и улучшения подзапросов. Структура внешнего интерфейса была удалена из основного пакета и перенесена в пакет laravel/ui. [17]
Laravel 7 был выпущен 3 марта 2020 года и содержал новые функции, такие как Laravel Sanctum, пользовательские Eloquent Casts, теги компонентов Blade, плавные строковые операции и улучшения привязки модели маршрута. [18]
Laravel 8 был выпущен 8 сентября 2020 года и содержал новые функции, такие как Laravel Jetstream, классы фабрики моделей, сжатие миграции, Tailwind CSS для представлений по страницам и другие улучшения удобства использования. [19]
Laravel 9 был выпущен 8 февраля 2022 года. [12]
Laravel 10 был выпущен 14 февраля 2023 года. [20]
История выпусков
Версии, обозначенные как LTS, поддерживались с исправлениями ошибок в течение 2 лет и исправлениями безопасности в течение 3 лет. Другие выпуски поддерживались с исправлениями ошибок в течение 6 месяцев и исправлениями безопасности в течение 1 года. [21]
Начиная с версии 8, основные версии выпускаются ежегодно, а график поддержки следующий: исправления ошибок в течение 18 месяцев и исправления безопасности в течение 2 лет для всех выпусков. Что касается дополнительных библиотек, исправлены ошибки только в последней основной версии. [19]
Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск
Источник: Ларавел [19] [25]
Функции
Следующие функции служат ключевыми моментами дизайна Laravel (если не указано иное, описания относятся к функциям Laravel 3): [4] [5] : 5–9 [6] [7] [26]
Пакеты представляют собой модульную систему упаковки с момента выпуска Laravel 3, в которой уже доступны встроенные функции для легкого добавления к приложениям. Кроме того, Laravel 4 использует Composer в качестве менеджера зависимостей для добавления независимых от платформы и специфичных для Laravel PHP-пакетов, доступных из репозитория Packagist . [27]
Логика приложения является неотъемлемой частью разрабатываемых приложений, реализуемой либо с помощью контроллеров , либо как часть объявлений маршрутов. Синтаксис , используемый для определения логики приложения, аналогичен синтаксису, используемому платформой Sinatra .
Обратная маршрутизация определяет взаимосвязь между ссылками и маршрутами, что позволяет автоматически распространять последующие изменения маршрутов на соответствующие ссылки. Когда ссылки создаются с использованием имен существующих маршрутов, соответствующие унифицированные идентификаторы ресурсов (URI) автоматически создаются Laravel.
Контроллеры Restful предоставляют дополнительный способ разделения логики обслуживания запросов HTTP GET и POST .
Автозагрузка классов обеспечивает автоматическую загрузку классов PHP без необходимости вручную поддерживать пути включения. Загрузка по требованию предотвращает включение ненужных компонентов, поэтому загружаются только фактически используемые компоненты.
Компоновщики представлений служат настраиваемыми логическими единицами кода, которые могут выполняться при загрузке представления.
Механизм шаблонов Blade объединяет один или несколько шаблонов с моделью данных для создания результирующих представлений, делая это путем передачи шаблонов в кэшированный PHP-код для повышения производительности. Blade также предоставляет набор собственных структур управления , таких как условные операторы и циклы , которые внутренне сопоставляются со своими аналогами PHP. Более того, сервисы Laravel можно вызывать из шаблонов Blade, а сам механизм шаблонов можно расширять с помощью пользовательских директив. [30] [31]
Контейнеры IoC позволяют создавать новые объекты, следуя принципу инверсии управления (IoC), при котором платформа вызывает код, специфичный для приложения или задачи, с дополнительным созданием экземпляров и ссылкой на новые объекты как синглтоны .
Миграции обеспечивают систему контроля версий для схем базы данных , позволяя связать изменения в кодовой базе приложения и необходимые изменения в структуре базы данных. В результате эта функция упрощает развертывание и обновление приложений на основе Laravel. [32]
Заполнение базы данных позволяет заполнить таблицы базы данных выбранными данными по умолчанию, которые можно использовать для тестирования приложения или выполнить как часть первоначальной настройки приложения. [32]
Модульное тестирование предоставляется как неотъемлемая часть Laravel, [9] : 61–62 , которая сама содержит модульные тесты, которые обнаруживают и предотвращают регрессии в среде. Модульные тесты можно запускать с помощью прилагаемой утилиты командной строки artisan .
Автоматическое разбиение на страницы упрощает задачу реализации разбивки на страницы, заменяя обычные подходы к реализации вручную автоматизированными методами, интегрированными в Laravel.
Запрос формы — это функция Laravel 5, которая служит основой для проверки ввода формы с помощью прослушивателей событий с внутренней привязкой , что приводит к автоматическому вызову методов проверки формы и генерации фактической формы.
Homestead — виртуальная машина Vagrant , которая предоставляет разработчикам Laravel все инструменты, необходимые для разработки Laravel прямо из коробки, включая Ubuntu , Gulp , Bower и другие инструменты разработки, полезные при разработке полномасштабных веб-приложений. [33]
Sail — Sail обеспечивает отличную отправную точку для создания приложения Laravel с использованием PHP, MySQL и Redis без предварительного опыта работы с Docker . [34]
Valet — инструмент для быстрой настройки минималистской локальной среды разработки PHP на вашем Mac с использованием возможностей Homebrew, Nginx и DnsMasq. [35]
Собственные пакеты
Готовые к использованию пакеты, предоставляемые Laravel через Composer и Packagist, включают следующее:
Cashier , представленный в Laravel 4.2, предоставляет интерфейс для управления услугами выставления счетов по подписке, предоставляемыми Stripe , такими как обработка купонов и генерация счетов . [36]
Envoy , представленный в Laravel 4.2, предоставляет чистый, минимальный синтаксис для определения общих задач, которые вы выполняете на удаленных серверах. Используя синтаксис стиля Blade, вы можете легко настраивать задачи для развертывания, команды Artisan и многое другое. [37]
Passport , представленный в Laravel 5.3, обеспечивает полную реализацию сервера OAuth2 для вашего приложения Laravel за считанные минуты. [39]
Scout , представленный в Laravel 5.3, предоставляет простое решение на основе драйверов для добавления полнотекстового поиска в ваши модели Eloquent. [40]
Dusk , представленный в Laravel 5.4, предоставляет выразительный и простой в использовании API для автоматизации и тестирования браузера. [41]
Horizon , представленный в Laravel 5.5, предоставляет визуальную панель мониторинга и конфигурацию на основе кода для ваших очередей Redis на базе Laravel . [42]
Telescope , представленный в Laravel 5.7, обеспечивает понимание запросов, поступающих в ваше приложение, исключений, записей журнала, запросов к базе данных, заданий в очереди, почты, уведомлений, операций кэша, запланированных задач, дампов переменных и многого другого. [43]
Sanctum , представленный в Laravel 7.0, предоставляет легкую систему аутентификации для SPA (одностраничных приложений), мобильных приложений и простых API на основе токенов. [44] Первоначально он назывался Laravel Airlock, но был переименован из-за спора о торговой марке, касающегося названия «Airlock». [45]
Jetstream , представленный в Laravel 8.0, обеспечивает платформу приложений для Laravel. Этот пакет эффективно основывается на идее инструментов пользовательского интерфейса, встроенных в предыдущие приложения Laravel, позволяющих пользователю выбирать между двумя вариантами: Livewire + Blade или Inertia.js + Vue. Этот пакет работает с Laravel Fortify. [46] Вскоре после выпуска Laravel возникли некоторые разногласия с Тейлором Отвеллом и пользователями Laravel из-за того, что некоторые считали, что старые платформы приложений устарели в пользу Jetstream. Позже выяснилось, что это не так. [47]
Fortify , представленный в Laravel 8.0, предоставляет платформу приложений для Laravel. Fortify используется для управления типичными пользовательскими задачами, опираясь на типичную аутентификацию для предоставления таких функций, как команды и механизмы двухфакторной аутентификации. Пакет тесно сотрудничает с Laravel Jetstream. [48] Fortify в некоторой степени основан на функциях, которые изначально были созданы для Laravel Spark.
Breeze, Laravel Breeze — это минимальная и простая реализация всех функций аутентификации Laravel, включая вход в систему, регистрацию, сброс пароля, проверку электронной почты и подтверждение пароля. Слой представления Laravel Breeze по умолчанию состоит из простых шаблонов Blade, оформленных с помощью Tailwind CSS. Breeze предоставляет прекрасную отправную точку для создания нового приложения Laravel .
Интерфейс командной строки (CLI) Laravel , называемый Artisan , изначально был представлен в Laravel 3 с ограниченным набором возможностей. Более поздний переход Laravel на архитектуру на основе Composer позволил Artisan включить различные компоненты из среды Symfony , что привело к появлению дополнительных функций Artisan в Laravel 4.
Функции Artisan сопоставлены с различными подкомандами утилиты командной строки Artisan , предоставляя функциональные возможности, которые помогают в управлении и создании приложений на основе Laravel. Обычное использование Artisan включает управление миграцией и заполнением базы данных, публикацию ресурсов пакета и создание шаблонного кода для новых контроллеров и миграций; последнее освобождает разработчика от необходимости создавать правильные скелеты кода . Функциональность и возможности Artisan также можно расширить за счет реализации новых пользовательских команд, которые, например, можно использовать для автоматизации повторяющихся задач, специфичных для приложения.
Конференции
Laracon — это официальная конференция Laravel, посвященная фреймворку Laravel и освещающая его разработку, использование и связанные с ним общие темы разработки программного обеспечения . В прошлом Ларакон проходил в США , Европе и онлайн. [49] [50] Обычно конференции проводятся в США и Европе каждый год. 2017 год стал первым годом, когда Ларакон проводился только в формате онлайн-мероприятия. 2018 год стал первым годом, когда Ларакон был проведен в Австралии. Каждый год у конференции разные спонсоры и организаторы, но основными организаторами обычно являются Laravel, Laravel News и UserScape.
Хотя многочисленные конференции Laracon проводятся официально, ряд других конференций проводится под названием Laravel Live. В настоящее время ежегодно проводятся конференции Laravel Live UK, Laravel Live Дания и Laravel Live India. [51] [52] [53] Хотя они официально не работают, у них есть разрешение Тейлора Отвелла на использование имени Laravel.
Vue.js , интерфейсная платформа, по умолчанию включенная в Laravel.
Рекомендации
↑ abcde Макс Сургуй (27 июля 2013 г.). «История PHP-фреймворка Laravel, появление Eloquence». maxoffsky.com . Архивировано из оригинала 27 ноября 2020 года . Проверено 10 мая 2015 г.
^ «Выпуск 10.3.2». 9 января 2024 г. . Проверено 19 января 2024 г.
^ «Сайт сообщества Voten, работающий в режиме реального времени, становится открытым исходным кодом» . Новости Ларавел . 16 июня 2017 года. Архивировано из оригинала 12 ноября 2020 года . Проверено 30 апреля 2020 г.
^ аб Даниэль Гафитеску (6 июня 2013 г.). «Прощай, CodeIgniter, здравствуй, Laravel». sitepoint.com . Архивировано из оригинала 30 ноября 2020 года . Проверено 21 декабря 2013 г.
^ abc Мартин Бин (апрель 2015 г.). Основы Laravel 5. Пакет . ISBN978-1785283017. Архивировано из оригинала 19 февраля 2023 года . Проверено 2 сентября 2015 г.
^ ab «Документация Laravel (версии 3.0–3.2.14)» . Three.laravel.com . Архивировано из оригинала 26 августа 2014 года . Проверено 30 августа 2014 г.
^ ab «Документация Laravel (версия 4.2)». laravel.com . Архивировано из оригинала 20 сентября 2014 года . Проверено 30 августа 2014 г.
^ «laravel/framework: фреймворк Laravel». github.com . Архивировано из оригинала 16 января 2023 года . Проверено 17 января 2023 г.
^ аб Рафаэль Сонье (январь 2014 г.). Начало работы с Laravel 4 . Пакет . ISBN978-1783287031. ОСЛК 868960968.
↑ Эрик Барнс (30 января 2015 г.). «Ларавель 5». laravel-news.com . Архивировано из оригинала 11 ноября 2016 года . Проверено 10 мая 2015 г.
^ «Представляем Lumen от Laravel». Мэтт Стауффер . Архивировано из оригинала 18 августа 2022 года . Проверено 25 июля 2022 г.
^ ab «Примечания к выпуску — Laravel — PHP Framework для веб-мастеров» . laravel.com . Архивировано из оригинала 10 февраля 2022 года . Проверено 12 февраля 2022 г.
^ Соргнер, Стефан Лоренц (4 ноября 2021 г.), «Конец как новое начало», Мы всегда были киборгами , Policy Press, стр. 185–187, doi : 10.1332/policypress/9781529219203.003.0005, ISBN9781529219203, заархивировано из оригинала 19 февраля 2023 г. , получено 25 июля 2022 г.
↑ Эрик Л. Барнс (9 июня 2015 г.). «Laravel 5.1 выпущен». laravel-news.com . Архивировано из оригинала 12 мая 2016 года . Проверено 14 июня 2015 г.
↑ Эрик Л. Барнс (23 августа 2016 г.). «Laravel 5.3 уже выпущен». laravel-news.com . Архивировано из оригинала 28 августа 2016 года . Проверено 23 августа 2016 г.
^ «Laravel 5.4 уже выпущен» . Новости Ларавел . 24 января 2017 года. Архивировано из оригинала 25 ноября 2020 года . Проверено 21 февраля 2017 г.
^ «Примечания к выпуску Laravel 6» . Ларавель . Архивировано из оригинала 30 января 2021 года . Проверено 1 ноября 2019 г.
^ «Примечания к выпуску — Laravel — PHP Framework для веб-мастеров» . laravel.com . Архивировано из оригинала 10 марта 2020 года . Проверено 9 марта 2020 г.
^ abcd «Примечания к выпуску — Laravel — PHP Framework для веб-мастеров». laravel.com . Архивировано из оригинала 21 июля 2021 года . Проверено 9 мая 2020 г.
^ ab «Выпущен Laravel 10». laravel-news.com . Архивировано из оригинала 14 февраля 2023 года . Проверено 13 февраля 2023 г.
^ «Документация Laravel: выпуски» . Ларавель. Архивировано из оригинала 23 ноября 2020 года . Проверено 26 февраля 2017 г.
^ abc «Laravel 9 уже выпущен». Архивировано из оригинала 17 февраля 2022 года . Проверено 9 февраля 2022 г.
^ @laravelphp (12 февраля 2020 г.). «Мы стремимся выпустить Laravel 7.x…» (Твит) – через Twitter .
^ «Laravel: поддержка PHP 8» . Ларавель. 26 ноября 2020 года. Архивировано из оригинала 23 июля 2021 года . Проверено 6 августа 2021 г.
^ «Примечания к выпуску репозитория Github — Laravel» . Ларавель. Архивировано из оригинала 3 марта 2019 года . Проверено 2 ноября 2019 г.
↑ Джеффри Уэй (28 ноября 2012 г.). «Почему Laravel штурмует PHP-сообщество». code.tutsplus.com . Архивировано из оригинала 5 мая 2015 года . Проверено 9 мая 2015 г.
^ «Документация Laravel (версия 4.2): Разработка пакетов». laravel.com . Архивировано из оригинала 13 августа 2014 года . Проверено 30 августа 2014 г.
^ «Разрабатывайте быстрее с помощью Laravel PHP Framework» . разработчик.com . Архивировано из оригинала 3 декабря 2020 года . Проверено 17 апреля 2015 г.
^ «Документация Laravel (версия 4.0): построитель запросов» . laravel.com . Архивировано из оригинала 24 марта 2015 года . Проверено 27 апреля 2015 г.
^ «Документация Laravel (версия 5.1): Шаблоны лезвий» . laravel.com . Архивировано из оригинала 10 июня 2015 года . Проверено 10 июня 2015 г.
^ Дейл Рис (2014). «Движок Laravel Blade». Daylerees.com . Архивировано из оригинала 31 мая 2015 года . Проверено 10 июня 2015 г.
^ ab «Документация Laravel (версия 5.0): миграции и заполнение». laravel.com . Архивировано из оригинала 8 апреля 2015 года . Проверено 27 апреля 2015 г.
^ «Laravel Homestead — Laravel PHP Framework для веб-мастеров» . Архивировано из оригинала 31 октября 2016 года . Проверено 30 октября 2016 г.
^ "Laravel Sail - Laravel - PHP Framework для веб-мастеров" . Архивировано из оригинала 26 апреля 2023 года . Проверено 26 апреля 2023 г.
^ "Ларавель Валет". Ларавель . 26 апреля 2023 года. Архивировано из оригинала 26 апреля 2023 года . Проверено 26 апреля 2023 г.
^ "Кассир Laravel - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 30 октября 2020 года . Проверено 28 февраля 2020 г.
^ "Laravel Envoy - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 10 января 2021 года . Проверено 28 февраля 2020 г.
^ "Laravel Socialite - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 23 ноября 2020 года . Проверено 28 февраля 2020 г.
^ «Паспорт Laravel — Laravel — PHP Framework для веб-мастеров» . laravel.com. Архивировано из оригинала 12 ноября 2020 года . Проверено 28 февраля 2020 г.
^ "Laravel Scout - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 29 ноября 2020 года . Проверено 28 февраля 2020 г.
^ "Laravel Dusk - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 29 ноября 2020 года . Проверено 28 февраля 2020 г.
^ "Laravel Horizon - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 23 ноября 2020 года . Проверено 28 февраля 2020 г.
^ «Телескоп Laravel — Laravel — PHP Framework для веб-мастеров» . laravel.com. Архивировано из оригинала 29 ноября 2020 года . Проверено 28 февраля 2020 г.
^ "Laravel Sanctum - Laravel - PHP Framework для веб-мастеров" . laravel.com. Архивировано из оригинала 23 ноября 2020 года . Проверено 1 апреля 2020 г.
^ «Шлюз Laravel переименован в Sanctum» . ПОЛ РЕДМОНД. Архивировано из оригинала 24 мая 2020 года . Проверено 1 апреля 2020 г.
^ «Введение | Laravel Jetstream» . jetstream.laravel.com . Архивировано из оригинала 3 октября 2020 года . Проверено 16 октября 2020 г.
↑ Отвелл, Тейлор (5 октября 2020 г.). «Дискуссия Джетстрима». YouTube . Архивировано из оригинала 22 октября 2020 года . Проверено 16 октября 2020 г.
^ laravel/fortify, The Laravel Framework, 16 октября 2020 г., заархивировано из оригинала 7 октября 2020 г. , получено 16 октября 2020 г.
^ «Laracon Online | Официальная всемирная онлайн-конференция Laravel» . Ларакон.нет . Архивировано из оригинала 16 декабря 2020 года . Проверено 24 марта 2017 г.
^ «Результаты поиска». laravel-news.com . Архивировано из оригинала 29 мая 2020 года . Проверено 24 марта 2017 г.
^ "Laravel Live UK | Главная" . laravellive.uk . Архивировано из оригинала 14 августа 2020 года . Проверено 5 августа 2020 г.
^ "Laravel Live, Дания, 2024" .
^ "Сообщество Laravel Live India" . Сообщество Laravel Live India . Архивировано из оригинала 10 августа 2020 года . Проверено 5 августа 2020 г.
дальнейшее чтение
Шаблоны проектирования и лучшие практики Laravel, Packt, ISBN 978-1783287987 , июль 2014 г., авторы Арда Кылычдаги и Х. Ибрагим Йилмаз