Ларавел
![]() | Эта статья содержит контент, написанный как реклама . ( Март 2024 г. ) |
![]() | |
Разработчик(и) | Тейлор Отвелл |
---|---|
Первоначальный выпуск | июнь 2011 г [1] |
Стабильная версия | 11.0.9 [2] ![]() |
Репозиторий | github |
Написано в | PHP |
Тип | Веб-фреймворк |
Лицензия | МОЯ лицензия |
Веб-сайт | ларавель |
Laravel — это бесплатная PHP на основе веб-платформа с открытым исходным кодом для создания высокопроизводительных веб-приложений. [3] Он был создан Тейлором Отвеллом и предназначен для разработки веб-приложений по модель-представление-контроллер (MVC) архитектурному шаблону и на основе Symfony . Некоторые из особенностей Laravel включают модульную систему упаковки со специальным менеджером зависимостей, различные способы доступа к реляционным базам данных , утилиты, помогающие в развертывании и обслуживании приложений , а также ее ориентацию на синтаксический сахар . [4] [5] : 2, 5–9 [6] [7]
Исходный код 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]
Обновление Laravel 11 было выпущено 12 марта 2024 года. О нем было объявлено в блоге Laravel и других социальных сетях, оно также подробно обсуждалось в EU Laracon. [21] который был организован в Амстердаме 5–6 февраля. Вместе с Laravel 11 был выпущен собственный веб-сервер под названием Laravel Reverb.
История выпусков [ править ]
Начиная с Laravel 5 и до Laravel 8, версии, обозначенные как LTS, поддерживались с исправлениями ошибок в течение 2 лет и исправлениями безопасности в течение 3 лет. Другие выпуски поддерживались с исправлениями ошибок в течение 6 месяцев и исправлениями безопасности в течение 1 года. [22] Начиная с версии 8, основные версии выпускаются ежегодно, а график поддержки был изменен, чтобы предоставить каждой версии 18 месяцев исправлений ошибок и 2 года исправлений безопасности. Что касается дополнительных библиотек, исправлены ошибки только в последней основной версии. [19]
Версия | Дата выпуска [23] | Исправления ошибок до | Исправления безопасности до | PHP-версия |
---|---|---|---|---|
1.0. | июнь 2011 г. | |||
2.0. | Сентябрь 2011 г. | |||
3.0. | 22 февраля 2012 г. | |||
3.1. | 27 марта 2012 г. | |||
3.2. | 22 мая 2012 г. | |||
4.0. | 28 мая 2013 г. | ≥ 5.3.0 | ||
4.1. | 12 декабря 2013 г. | ≥ 5.3.0 | ||
4.2. | 1 июня 2014 г. | ≥ 5.4.0 | ||
5.0. | 4 февраля 2015 г. | 4 августа 2015 г. | 4 февраля 2016 г. | ≥ 5.4.0 |
5.1 LTS. | 9 июня 2015 г. | 9 июня 2017 г. | 9 июня 2018 г. | ≥ 5.5.9 |
5.2. | 21 декабря 2015 г. | 21 июня 2016 г. | 21 декабря 2016 г. | ≥ 5.5.9 |
5.3. | 23 августа 2016 г. | 23 февраля 2017 г. | 23 августа 2017 г. | ≥ 5.6.4 |
5.4. | 24 января 2017 г. | 24 июля 2017 г. | 24 января 2018 г. | ≥ 5.6.4 |
5.5 LTS. | 30 августа 2017 г. | 30 августа 2019 г. | 30 августа 2020 г. | ≥ 7.0.0 |
5.6. | 7 февраля 2018 г. | 7 августа 2018 г. | 7 февраля 2019 г. | ≥ 7.1.3 |
5.7. | 4 сентября 2018 г. | 4 марта 2019 г. | 4 сентября 2019 г. | ≥ 7.1.3 |
5.8. | 26 февраля 2019 г. | 26 августа 2019 г. | 26 февраля 2020 г. | ≥ 7.1.3 |
6 LTS. | 3 сентября 2019 г. | 25 января 2022 г. | 6 сентября 2022 г. | 7.2 – 8.0 [24] |
7 | 3 марта 2020 г. [25] | 6 октября 2020 г. | 3 марта 2021 г. | 7.2 – 8.0 [19] |
8 | 8 сентября 2020 г. | 26 июля 2022 г. | 24 января 2023 г. | 7.3 – 8.1 [26] |
9 | 8 февраля 2022 г. [24] | 8 августа 2023 г. | 6 февраля 2024 г. | 8.0 – 8.2 [24] |
10 | 14 февраля 2023 г. | 6 августа 2024 г. | 4 февраля 2025 г. | 8.1 – 8.3 [20] |
11 | 12 марта 2024 г. | 3 сентября 2025 г. | 12 марта 2026 г. | ≥ 8.2 [27] |
12 | 1 квартал 2025 г. | Q3 2026 | 1 квартал 2027 г. | ≥ 8.2 [27] |
Легенда: | Старая версия, не поддерживается | Старая версия, все еще поддерживается | Текущая стабильная версия | Последняя предварительная версия | Будущий выпуск |
---|
Особенности [ править ]
Laravel может похвастаться множеством функций, которые делают его комплексной средой для веб-разработки:
- Eloquent ORM : инструмент объектно-реляционного отображения (ORM) Laravel, Eloquent, позволяет разработчикам взаимодействовать с базами данных, используя объектно-ориентированный синтаксис. Он поддерживает операции CRUD и обеспечивает реализацию активной записи для работы с моделями баз данных.
- Маршрутизация : Laravel предлагает встроенный механизм маршрутизации, который разработчики могут использовать для определения маршрутов приложений. Эта функция включает поддержку групп маршрутов, именованных маршрутов и привязки модели маршрута.
- Механизм шаблонов Blade : Blade — это механизм шаблонов от первого лица, который позволяет использовать динамические директивы PHP в представлениях на основе HTML. Он предоставляет такие функции, как наследование шаблонов, разделы и условные операторы, которые можно использовать для создания динамического контента.
- Промежуточное программное обеспечение : Промежуточное программное обеспечение позволяет фильтровать HTTP-запросы, поступающие в приложение. Его можно использовать для различных задач, таких как аутентификация, ведение журнала и управление заголовками CORS.
- Система очередей : Laravel включает унифицированный API для различных серверов очередей, таких как Beanstalkd, Amazon SQS и Redis. Эта система помогает управлять такими задачами, как отправка электронной почты или обработка данных в фоновом режиме, что может повысить производительность приложений.
- Широковещательная передача : эта функция позволяет осуществлять широковещательную передачу данных в реальном времени с использованием WebSockets. Это помогает в создании приложений реального времени, таких как приложения чата и уведомления.
- Планирование задач . Встроенная функция планирования задач позволяет выполнять запланированные задачи в приложении. Эта абстракция может унифицировать управление заданиями cron, позволяя определять их в самом приложении Laravel.
- Безопасность : Laravel включает в себя несколько встроенных функций безопасности, таких как защита CSRF, хеширование паролей и шифрование. Он также предоставляет несколько методов проверки и очистки ввода пользователя.
Производительность [ править ]
Laravel включает в себя ряд функций, помогающих разработчикам повысить производительность своих приложений.
- Кэширование : Laravel предоставляет систему кэширования на основе драйверов, которая поддерживает различные серверные части, такие как Memcached, Redis и файловое кэширование. Кэширование может значительно повысить производительность приложения за счет снижения нагрузки на базу данных или выполнения других тяжелых задач.
- Команды оптимизации : Laravel включает несколько команд Artisan для оптимизации производительности фреймворка. Эти команды можно использовать для кэширования файлов конфигурации, маршрутов и представлений, что снижает накладные расходы во время выполнения.
- Управление очередями . Перенося трудоемкие задачи в фоновые очереди, они помогают повысить скорость реагирования приложений. Система очередей Laravel поддерживает несколько серверных очередей, что помогает при масштабировании приложения.
- Оптимизация базы данных . Eloquent ORM от Laravel включает в себя такие функции, как отложенная загрузка, быстрая загрузка и кэширование запросов, которые помогают оптимизировать запросы к базе данных и повысить производительность.
Тестирование [ править ]
Laravel включает в себя ряд других пакетов для создания наборов тестирования.
- Модульное тестирование : Laravel включает PHPUnit и PestPHP, две популярные среды тестирования PHP. Он также предоставляет различные инструменты тестирования и утверждения для облегчения модульного тестирования компонентов приложения.
- Тестирование функций : Laravel позволяет разработчикам писать тесты функций, которые имитируют взаимодействие с пользователем и проверяют поведение приложения с точки зрения пользователя. Это гарантирует, что приложение работает должным образом.
- Mocking : Laravel интегрируется с Mockery, библиотекой макетирования, что позволяет разработчикам создавать макеты объектов и определять ожидания для тестирования зависимостей и взаимодействий.
- Тестирование браузера : Laravel Dusk предоставляет API-интерфейс для автоматизации браузера и тестирования для сквозного тестирования. Это позволяет разработчикам тестировать все приложение в реальной среде браузера.
Безопасность [ править ]
Laravel включает в себя ряд инструментов для повторяющихся мер безопасности, которые потребуются большинству приложений.
- Защита CSRF : Laravel автоматически генерирует и проверяет токены CSRF для отправки форм, защищая от атак с подделкой межсайтовых запросов.
- Аутентификация и авторизация . Laravel предоставляет встроенные службы аутентификации, включая регистрацию пользователя, вход в систему и сброс пароля. Он также предлагает простые и гибкие механизмы авторизации для управления разрешениями и ролями пользователей.
- Шифрование : Laravel использует стандарты шифрования AES-256 и AES-128 для обеспечения безопасного шифрования и дешифрования данных. Платформа включает встроенные помощники для шифрования и дешифрования строк.
- Проверка : система проверки Laravel позволяет разработчикам проверять вводимые пользователем данные и защищать от вредоносных данных. Он включает в себя множество правил проверки и поддерживает пользовательскую логику проверки.
Командная строка Artisan [ править ]
Laravel Интерфейс командной строки (CLI) , называемый Artisan , изначально был представлен в Laravel 3 с ограниченным набором возможностей. Более поздний переход Laravel на архитектуру на основе Composer позволил Artisan включить различные компоненты из среды Symfony , что привело к появлению дополнительных функций Artisan в Laravel 4.
Функции Artisan сопоставлены с различными подкомандами Утилита командной строки Artisan , предоставляющая функциональные возможности, помогающие управлять и создавать приложения на основе Laravel. Обычное использование Artisan включает управление миграцией и заполнением базы данных, публикацию ресурсов пакета и создание шаблонного кода для новых контроллеров и миграций; последнее освобождает разработчика от необходимости создавать правильные скелеты кода . Функциональность и возможности Artisan также можно расширить за счет реализации новых пользовательских команд, которые, например, можно использовать для автоматизации повторяющихся задач, специфичных для приложения.
Экосистема [ править ]
Laravel предоставляет ряд сервисов, на которых пользователи могут создавать свои приложения.
- Laravel Forge : служба управления сервером и развертывания PHP-приложений. Forge помогает в настройке серверов, развертывании кода, настройке SSL и мониторинге работоспособности сервера.
- Laravel Vapor : бессерверная платформа развертывания Laravel на базе AWS. Vapor занимается масштабированием, резервным копированием баз данных и развертыванием, что упрощает запуск приложений Laravel в бессерверной среде.
- Laravel Mix : уровень конфигурации поверх Webpack. Mix предоставляет гибкий API для определения этапов сборки Webpack для вашего приложения. Он упрощает такие задачи, как компиляция CSS и JavaScript, минификация и управление версиями.
- Laravel Nova : Красиво оформленная административная панель для Laravel. Nova позволяет разработчикам легко управлять данными в своих приложениях с помощью элегантного интуитивно понятного интерфейса.
- Laravel Echo : библиотека JavaScript, упрощающая работу с WebSockets. Echo упрощает процесс подписки на каналы и прослушивания событий, транслируемых приложением Laravel.
- Laravel Envoyer : служба развертывания приложений PHP и Laravel с нулевым временем простоя. Envoyer обрабатывает перехватчики развертывания, уведомления и проверки работоспособности, чтобы обеспечить плавное и надежное развертывание.
- Laravel Sail : Laravel поддерживает Docker через Laravel Sail, легкий интерфейс командной строки для взаимодействия с Docker. Sail предоставляет простой способ запуска приложений Laravel в контейнерной среде.
Ларакон [ править ]
Laracon — это официальная конференция Laravel, посвященная фреймворку Laravel и освещающая его разработку, использование и связанные с ним общие темы разработки программного обеспечения . Ларакон проходил в США , Европе и онлайн. В прошлом [28] [29] Обычно конференция проводится в США и Европе каждый год. 2017 год стал первым годом, когда Ларакон проводился только в формате онлайн-мероприятия. 2018 год стал первым годом, когда Ларакон был проведен в Австралии. Каждый год у конференции разные спонсоры и организаторы, но основными организаторами обычно являются Laravel, Laravel News и UserScape.
Хотя многочисленные конференции Laracon проводятся официально, ряд других конференций проводится под названием Laravel Live. В настоящее время ежегодно проводятся конференции Laravel Live UK, Laravel Live Дания и Laravel Live India. [30] [31] [32] Хотя они официально не работают, у них есть разрешение Тейлора Отвелла на использование имени Laravel.
См. также [ править ]
- Сравнение веб-фреймворков
- Сравнение движков веб-шаблонов
- October — система управления контентом, построенная на Laravel.
- Vue.js , интерфейсная платформа, по умолчанию включенная в Laravel.
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с д и Макс Сургай (27 июля 2013 г.). «История PHP-фреймворка Laravel, появление Eloquence» . maxoffsky.com . Архивировано из оригинала 27 ноября 2020 года . Проверено 10 мая 2015 г.
- ^ «Выпуск 11.0.9» . 21 мая 2024 г. . Проверено 23 мая 2024 г.
- ^ «Введение в Laravel: PHP-фреймворк для создания высокопроизводительных веб-приложений» . www.w3schools.in . Проверено 27 марта 2024 г.
- ^ Даниэль Гафитеску (6 июня 2013 г.). «Прощай, CodeIgniter, здравствуй, Laravel» . sitepoint.com . Архивировано из оригинала 30 ноября 2020 года . Проверено 21 декабря 2013 г.
- ^ Jump up to: Перейти обратно: а б Мартин Бин (апрель 2015 г.). Основы Laravel 5 . Пакеты . ISBN 978-1785283017 . Архивировано из оригинала 19 февраля 2023 года . Проверено 2 сентября 2015 г.
- ^ «Документация Laravel (версии 3.0–3.2.14)» . Three.laravel.com . Архивировано из оригинала 26 августа 2014 года . Проверено 30 августа 2014 г.
- ^ «Документация Laravel (версия 4.2)» . laravel.com . Архивировано из оригинала 20 сентября 2014 года . Проверено 30 августа 2014 г.
- ^ «laravel/framework: фреймворк Laravel» . github.com . Архивировано из оригинала 16 января 2023 года . Проверено 17 января 2023 г.
- ^ Рафаэль Сонье (январь 2014 г.). Начало работы с Laravel 4 . Пакет . ISBN 978-1783287031 . OCLC 868960968 .
- ^ Эрик Барнс (30 января 2015 г.). «Ларавель 5» . laravel-news.com . Архивировано из оригинала 11 ноября 2016 года . Проверено 10 мая 2015 г.
- ^ «Представляем Lumen от Laravel» . Мэтт Стауффер . Архивировано из оригинала 18 августа 2022 года . Проверено 25 июля 2022 г.
- ^ Jump up to: Перейти обратно: а б «Примечания к выпуску — Laravel — PHP Framework для веб-мастеров» . laravel.com . Архивировано из оригинала 10 февраля 2022 года . Проверено 12 февраля 2022 г.
- ^ Зоргнер, Стефан Лоренц (4 ноября 2021 г.), «Конец как новое начало» , Мы всегда были киборгами , Policy Press, стр. 185–187, doi : 10.1332/policypress/9781529219203.003.0005 , ISBN 9781529219203 , заархивировано из оригинала 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 г.
- ^ Jump up to: Перейти обратно: а б с «Примечания к выпуску — Laravel — PHP Framework для веб-мастеров» . laravel.com . Архивировано из оригинала 21 июля 2021 года . Проверено 9 мая 2020 г.
- ^ Jump up to: Перейти обратно: а б «Выпущен Laravel 10» . laravel-news.com . Архивировано из оригинала 14 февраля 2023 года . Проверено 13 февраля 2023 г.
- ^ LARACON EU 2024 // TAYLOR OTWELL :: LARAVEL UPDATE , получено 19 марта 2024 г.
- ^ «Документация Laravel: релизы» . Ларавель. Архивировано из оригинала 23 ноября 2020 года . Проверено 26 февраля 2017 г.
- ^ «Примечания к выпуску репозитория Github — Laravel» . Ларавель. Архивировано из оригинала 3 марта 2019 года . Проверено 2 ноября 2019 г.
- ^ Jump up to: Перейти обратно: а б с «Laravel 9 уже выпущен» . 8 февраля 2022 года. Архивировано из оригинала 17 февраля 2022 года . Проверено 9 февраля 2022 г.
- ^ @laravelphp (12 февраля 2020 г.). «Мы стремимся выпустить Laravel 7.x…» ( Твит ) – через Twitter .
- ^ «Laravel: поддержка PHP 8» . Ларавель. 26 ноября 2020 года. Архивировано из оригинала 23 июля 2021 года . Проверено 6 августа 2021 г.
- ^ Jump up to: Перейти обратно: а б «Laravel — PHP-фреймворк для веб-мастеров» . laravel.com . Проверено 13 марта 2024 г.
- ^ «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 г.
Внешние ссылки [ править ]
