Laravel

редактировать
Фреймворк веб-приложений с открытым исходным кодом, написанный на PHP

Laravel
логотип Laravel
Разработчик (и) Тейлор Отвелл
Первый выпускиюнь 2011 г.; 9 лет назад (2011-06)
Стабильный выпуск 8.11.2 / 2020-10-28
Репозиторий Laravel Repository
Написано наPHP
Тип Веб-фреймворк
Лицензия Лицензия MIT
Веб-сайтlaravel.com

Laravel - это бесплатный с открытым исходным кодом PHP веб-фреймворк, созданный Тейлором Отвеллом и предназначенный для разработки веб-приложений в соответствии с моделью – представлением – контроллером (MVC) архитектурным шаблоном и на основе Симфони. Некоторые из функций Laravel - это модульная упаковочная система со специальным менеджером зависимостей, различные способы доступа к реляционным базам данных, утилиты, которые помогают в развертывании приложений и обслуживании., и его ориентация на синтаксический сахар.

Исходный код Laravel размещен на GitHub и лицензируется в соответствии с условиями лицензии MIT.

Содержание
  • 1 История
    • 1.1 История выпусков
  • 2 Функции
    • 2.1 Собственные пакеты
    • 2.2 Artisan CLI
  • 3 Конференции
  • 4 См. Также
  • 5 Ссылки
  • 6 Далее чтение
  • 7 Внешние ссылки
История

Тейлор Отвелл создал Laravel как попытку предоставить более продвинутую альтернативу фреймворку CodeIgniter, который не предоставлял определенных функций, таких как встроенный -в поддержке пользователя аутентификации и авторизации. Первая бета-версия Laravel была выпущена 9 июня 2011 года, а позже в том же месяце последовал выпуск Laravel 1. Laravel 1 включает встроенную поддержку аутентификации, локализации, моделей, представлений, сессий, маршрутизации и других механизмов, но не поддерживает для контроллеров, которые не позволяли ему быть истинной MVC фреймворком.

Laravel 2 был выпущен в сентябре 2011 года, в него были внесены различные улучшения со стороны автора и сообщества. Основные новые функции включают поддержку контроллеров, что сделало Laravel 2 полностью совместимым с MVC фреймворком, встроенную поддержку принципа инверсии управления (IoC) и систему шаблонов - позвал Блэйд. Как недостаток, поддержка сторонних пакетов была удалена в Laravel 2.

Laravel 3 был выпущен в феврале 2012 года с набором новых функций, включая интерфейс командной строки . (CLI) под названием Artisan, встроенная поддержка большего количества систем управления базами данных, миграции баз данных как форма контроля версий для макетов баз данных, поддержка обработки событий и система упаковки Bundles. Увеличение пользовательской базы и популярности Laravel совпало с выпуском Laravel 3.

Laravel 4 под кодовым названием Illuminate был выпущен в мае 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). Планировалось выпускать новые версии LTS каждые два года.

Laravel 5.3 был выпущен 23 августа 2016 года. Новые функции в 5.3 направлены на повышение скорости разработки за счет добавления дополнительных готовых улучшений для общих задач.

Laravel 5.4 был выпущен 24 января 2017 года с множеством новых функций, таких как Laravel Dusk, Laravel Mix, Blade Components and Slots, Markdown Emails, Automatic Facades, Route Improvements, Higher Order Messaging for Collections, и многие другие..

Laravel 6 был выпущен 3 сентября 2019 года, сдвиг в генерации кода чертежа, введение семантического управления версиями, совместимость с Laravel Vapor, улучшенные ответы на авторизацию, улучшенное промежуточное программное обеспечение заданий, ленивые коллекции и улучшения подзапросов. Леса внешнего интерфейса были удалены из основного пакета и перемещены в пакет laravel / ui.

Laravel 7 был выпущен 3 марта 2020 года с новыми функциями, такими как Laravel Sanctum, Custom Eloquent Casts, Blade Component Tags, Fluent Строковые операции и улучшения привязки модели маршрута.

Последней версией Laravel является версия 8, которая была выпущена 8 сентября 2020 года, с новыми функциями, такими как Laravel Jetstream, фабричные классы моделей, сжатие миграции, для просмотра разбивки на страницы и другие улучшения удобства использования.

История выпусков

Версии, обозначенные LTS, поддерживаются с исправлениями ошибок в течение 2 лет и исправлениями безопасности в течение 3 лет. Другие выпуски поддерживаются с исправлениями ошибок в течение 6 месяцев и исправлениями безопасности в течение 1 года.

ВерсияДата выпускаВерсия PHP
Старая версия, больше не поддерживается: 1.0июнь 2011
Старая версия, больше не поддерживается: 2.0Сентябрь 2011
Старая версия, больше не поддерживается: 3.022 февраля 2012 г.
Старая версия, больше не поддерживается: 3.127 марта 2012 г.
Старая версия, больше не поддерживается: 3.222 мая 2012 г.
Старая версия, больше не поддерживается: 4.028 мая 2013 г.≥ 5.3.0
Старая версия, больше не поддерживается: 4.112 декабря 2013 г.≥ 5.3.0
Старая версия, больше не поддерживается: 4.21 июня 2014 г.≥ 5.4.0
Старая версия, больше не поддерживается: 5.04 февраля, 2015≥ 5.4.0
Старая версия, больше не поддерживается: 5.1 LTS9 июня 2015≥ 5.5.9
Старая версия, более не поддерживается: 5.221 декабря 2015 г.≥ 5.5.9
Старая версия включена, больше не поддерживается: 5.323 августа 2016 г.≥ 5.6.4
Старая версия, больше не поддерживается: 5.424 января 2017 г.≥ 5.6.4
Старая версия, больше не поддерживается: 5.5 LTS30 августа 2017 г.≥ 7.0.0
Старая версия, больше не поддерживается: 5.67 февраля 2018 г.≥ 7.1.3
Старая версия, больше не поддерживается: 5.74 сентября 2018 г.≥ 7.1.3
Старая версия, больше не поддерживается: 5.826 февраля 2019 г.≥ 7.1.3
Старая версия, но все еще поддерживается: 6 LTS3 сентября 2019 г.≥ 7.2.0
Старая версия, но все еще поддерживается: 73 марта 2020 г.≥ 7.2.5
Текущая стабильная версия: 88 сентября 2020 г.≥ 7.3.0
Условные обозначения:Старая версия, не поддерживаетсяСтарая версия, все еще поддерживаетсяТекущая стабильная версияПоследняя предварительная версияБудущий выпуск

Источник: Laravel

Возможности

Следующие функции ser В качестве ключевых моментов проектирования Laravel (если не указано иное, описания относятся к функциям Laravel 3):

  • Пакеты предоставляют модульный. система упаковки с момента выпуска Laravel 3 с уже доступными связанными функциями для простого добавления в приложения. Более того, Laravel 4 использует Composer в качестве диспетчера зависимостей для добавления пакетов PHP, не зависящих от фреймворка и специфичных для Laravel, доступных из репозитория Packagist.
  • Eloquent ORM (объектно-реляционное сопоставление ) - это расширенная реализация PHP шаблона активной записи, предоставляющая в то же время внутренние методы для наложения ограничений на отношения между объектами базы данных. Следуя шаблону активной записи, Eloquent ORM представляет таблицы базы данных как классы с их экземплярами объектов, привязанными к отдельным строкам таблицы.
  • Конструктор запросов, доступный с Laravel 3, обеспечивает более прямой доступ к базе данных, альтернативу Eloquent ORM. Вместо того, чтобы требовать непосредственного написания SQL-запросов, построитель запросов Laravel предоставляет набор классов и методов, способных создавать запросы программно. Он также позволяет выбирать кэширование результатов выполненных запросов.
  • Логика приложения является неотъемлемой частью разрабатываемых приложений, реализуемая либо с использованием контроллеров, либо как часть объявления маршрута. Синтаксис , используемый для определения логики приложения, аналогичен синтаксису, используемому Sinatra framework.
  • Обратная маршрутизация определяет отношения между ссылками и маршрутами, что позволяет последующие изменения маршрутов будут автоматически перенесены в соответствующие ссылки. Когда ссылки создаются с использованием имен существующих маршрутов, соответствующие универсальные идентификаторы ресурсов (URI) автоматически создаются Laravel.
  • Контроллеры Restful предоставляют дополнительный способ разделения логики обслуживания HTTP GET и POST requests.
  • Автозагрузка классов обеспечивает автоматическую загрузку классов PHP без необходимости ручного обслуживания путей включения. Загрузка по запросу предотвращает включение ненужных компонентов, поэтому загружаются только фактически используемые компоненты.
  • Компоновщики представления служат как настраиваемые блоки логического кода, которые могут выполняться при загрузке представления.
  • Blade шаблонизатор объединяет один или несколько шаблонов с моделью данных для создания результирующих представлений, делая это путем транспиляции шаблонов в кэшированный код PHP для повышения производительности. Blade также предоставляет набор своих собственных управляющих структур , таких как условные операторы и циклы, которые внутренне сопоставлены со своими аналогами PHP. Кроме того, службы Laravel можно вызывать из шаблонов Blade, а сам механизм шаблонов может быть расширен с помощью настраиваемых директив.
  • Контейнеры IoC позволяют создавать новые объекты, следуя инверсии элемента управления (IoC) принцип, в котором структура вызывает код приложения или задачи, с дополнительным созданием экземпляров и ссылками на новые объекты как одиночные объекты.
  • Миграции обеспечивают систему управления версиями для схем базы данных, что позволяет связать изменения в кодовой базе приложения и необходимые изменения в макете базы данных. В результате эта функция упрощает развертывание и обновление приложений на основе Laravel.
  • Заполнение базы данных обеспечивает способ заполнения таблиц базы данных выбранными данными по умолчанию, которые можно использовать для приложения тестирование или выполняться как часть начальной настройки приложения.
  • Модульное тестирование предоставляется как неотъемлемая часть Laravel, который сам содержит модульные тесты, которые обнаруживают и предотвращают регрессии в каркас. Модульные тесты можно запускать с помощью предоставленной утилиты командной строки artisan .
  • Автоматическая разбивка на страницы упрощает задачу реализации разбивки на страницы, заменяя обычные подходы к реализации вручную автоматическими методами, интегрированными в Laravel.
  • Запрос формы функция Laravel 5, которая служит основой для проверки ввода form путем внутренней привязки событий слушателей, что приводит к автоматическому вызову методов проверки формы и генерации фактической формы.
  • Homestead - виртуальная машина Vagrant , которая предоставляет разработчикам Laravel все инструменты, необходимые для разработки Laravel прямо из коробки, включая Ubuntu, Gulp, Bower и другие инструменты разработки, которые полезны при разработке полномасштабных веб-приложений.
  • Canvas - платформа публикации на основе Laravel, которая помогает визуализировать ежемесячные тенденции, видеть, откуда приходят читатели, и в какое время суток они предпочитают читать контент. Такие функции, как: статистика публикаций, написание без отвлекающих факторов, Unsplash интеграция, настраиваемые социальные данные.
  • Lazy Collection - эта функция PHP-фреймворка Laravel 6 в первую очередь позволяет вам справляться с большими нагрузками. данных, сохраняя при этом низкое использование памяти. Более того, когда вы переключаетесь со всех (_ на cursor (), только одна выразительная модель перемещается в памяти за раз, поскольку cursor () использует экземпляр LazyCollection.

Собственные пакеты

Готовые к использованию пакеты, предоставляемые Laravel через Composer и Packagist, включают следующее:

  • Cashier, представленный в Laravel 4.2, предоставляет интерфейс для управления службами выставления счетов по подписке, предоставляемыми Stripe, такими как обработка купоны и создание счетов.
  • Envoy, представленный в Laravel 4.2, обеспечивает чистый, минимальный синтаксис для определения общих задач, которые вы выполняете на удаленных серверах. Используя синтаксис в стиле Blade, вы можете легко настроить задачи для развертывания, Команды Artisan и др.
  • Socialite предоставляет упрощенные механизмы для аутентификации с различными поставщиками OAuth, включая Facebook, Twitter, Google, GitHub и Bitbucket.
  • Passport, представленный в Laravel 5.3, предоставляет полный Реализация сервера OAutdiv class="ht" для вашего приложения Laravel.
  • Scout, представленный в Laravel 5.3, предоставляет простое решение на основе драйверов для добавления полнотекстового поиска в ваши модели Eloquent.
  • Dusk, представленный в Laravel 5.4, предоставляет выразительный, простой в использовании API-интерфейс для автоматизации и тестирования браузера.
  • Horizon, представленный в Laravel 5.5, предоставляет красивую панель инструментов и конфигурацию на основе кода для вашего Laravel. Redis queues.
  • Telescope, представленный в Laravel 5.7, обеспечивает понимание запросов, поступающих в ваше приложение, исключений, записей журнала, запросов к базе данных, заданий в очереди, почты, уведомлений, операций с кешем, запланированные задачи, дампы переменных и многое другое.
  • Sanctum, представленный в Laravel 7.0, обеспечивает легкую систему аутентификации для SPA (одностраничных приложений), мобильных приложений и простых API на основе токенов. Сначала это называется Laravel Airlock, он был переименован из-за спора о товарных знаках в отношении n например, «Airlock».
  • Jetstream, представленный в Laravel 8.0, предоставляет платформу приложений для Laravel. Этот пакет эффективно основан на идее инструментов пользовательского интерфейса, встроенных в прошлые приложения Laravel, позволяя пользователю выбирать между двумя вариантами: Livewire + Blade или Inertia.js + Vue. Этот пакет работает с Laravel Fortify. Вскоре после выпуска Laravel возникли некоторые разногласия с пользователями Taylor Otwell и Laravel из-за того, что некоторые полагали, что старые каркасы приложений устаревают в пользу Jetstream. С тех пор было выяснено, что это не так.
  • Fortify, представленный в Laravel 8.0, обеспечивает платформу приложения для Laravel. Fortify используется для управления типичными пользовательскими задачами, опираясь на типичную аутентификацию, чтобы предоставить такие вещи, как команды и механизмы двухфакторной аутентификации. Пакет тесно работает с Laravel Jetstream. Fortify в некоторой степени основан на функциях, которые были изначально созданы для Laravel Spark.

Artisan CLI

Интерфейс командной строки Laravel (CLI), называемый Artisan, был первоначально представлен в Laravel 3 с ограниченный набор возможностей. Более поздняя миграция Laravel на архитектуру на основе Composer позволила Artisan включить различные компоненты из Symfony framework, что привело к доступности дополнительных функций Artisan в Laravel 4.

Возможности Artisan отображены на карте. к различным подкомандам утилиты командной строки Artisan, предоставляя функциональные возможности, которые помогают в управлении и создании приложений на основе Laravel. Обычно Artisan использует управление миграциями и заполнением базы данных, публикацию ресурсов пакета и создание шаблонного кода для новых контроллеров и миграций; последнее освобождает разработчика от создания правильного кода скелетов. Функциональные возможности и возможности Artisan также могут быть расширены путем реализации новых пользовательских команд, которые, например, могут использоваться для автоматизации повторяющихся задач, связанных с конкретным приложением.

Конференции
Тейлор Отвелл на выставке Laracon в США в 2013 году

Laracon - это официальная конференция Laravel, посвященная фреймворку Laravel, охватывающая его разработку, использование и связанные общие разработки программного обеспечения. Laracon в прошлом имел место в США, Европе и в сети. Обычно конференция проводится в США и Европе каждый год. 2017 год стал первым годом, когда Laracon проводился только как онлайн-мероприятие. 2018 год стал первым годом проведения Laracon в Австралии. Каждый год у конференции есть разные спонсоры и организаторы, но Laravel, Laravel News и UserScape обычно являются основными организаторами.

В то время как многочисленные конференции Laracon проводятся официально, ряд других конференций проводится под названием Laravel Live. В настоящее время ежегодно проводятся конференции Laravel Live UK и Laravel Live India. Хотя они официально не работают, у них есть разрешение Тейлора Отвелла на использование имени Laravel.

См. Также
  • значок Портал компьютерного программирования
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Дополнительная литература
  • Laravel Design Patterns and Best Practices, Packt, ISBN 978-1783287987, июль 2014 г., Арда Кылычдагы и Х. Ибрагим Йилмаз
Внешние ссылки
Викискладе есть медиафайлы, связанные с Laravel.
Последняя правка сделана 2021-05-26 13:30:00
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте