Laravel: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Оценочное суждение. Почему 30%?
Обновил изображение логотипа на более новый взятый с офф сайта laravel.com
Строка 1: Строка 1:
{{Карточка программы}}
{{Карточка программы
| логотип = [[File:Logo.min.svg|thumb|Логотип Laravel]]
}}


'''Laravel''' — бесплатный веб-[[фреймворк]] с [[Открытый код|открытым кодом]], предназначенный для разработки с использованием архитектурной модели [[Model-View-Controller|MVC]] ({{lang-en|Model View Controller}} — модель-представление-контроллер). Laravel выпущен под [[Лицензия MIT|лицензией MIT]].
'''Laravel''' — бесплатный веб-[[фреймворк]] с [[Открытый код|открытым кодом]], предназначенный для разработки с использованием архитектурной модели [[Model-View-Controller|MVC]] ({{lang-en|Model View Controller}} — модель-представление-контроллер). Laravel выпущен под [[Лицензия MIT|лицензией MIT]].

Версия от 07:51, 3 июня 2020

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

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

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

В 2015 году в результате опроса sitepoint.com по использованию PHP-фреймворков среди программистов занял первое место в номинациях:

  • Фреймворк корпоративного уровня
  • Фреймворк для личных проектов
  • Кладезь антипаттернов

История

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

Laravel 5.1, выпущенный в июне 2015 года. Является первым выпуском Laravel для долгосрочной поддержки (LTS) с запланированной возможностью исправления ошибок в течение трех лет и исправлений безопасности в течение трех лет.

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

Laravel 5.4, выпущенный 24 января 2017 года. В этом выпуске есть много новых функций, таких как Laravel Dusk, Laravel Mix, Blade Components и Slots, Markdown Emails, автоматические фасады, улучшения маршрута.

Laravel 5.5, выпущенный 30 августа 2017 года. Возвращен пакет Whoops для отладки ошибок. Из нововведений, метод обработки запроса, новые директивы для шаблонизатора Blade, новая команда для миграции баз данных - migrate:fresh [7].

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

Возможности

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

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

Отладка в Laravel

Существует полезный инструмент для разработчика: пакет barryvdh/laravel-debugbar[13]. Он позволяет включить в браузере панель для отладки на подобие Chrome DevTools.

Долгосрочная поддержка

В 2011 году фреймворк следовал, как и многие популярные opensource-проекты, мантре "релиз раньше, релиз чаще". С исторически растущей популярностью фреймворка наступило время для акцента на требованиях больших организаций и критически важных приложений, которые нуждаются в безопасных исправлениях, без скорых обновлений. Laravel 5.1 включает 3 года безопасных исправлений.

Проекты

Помимо самого фреймворка, разработчики выпустили следующие продукты:

  • Lumen[14] — микро-фреймворк, основанный на компонентах Laravel.
  • Spark[15] — платный пакет для построения SaaS сервисов.
  • Horizon[16] — пакет для отслеживания ключевых показателей системы очередей.
  • Laravel Nova[17] - панель администрирования Laravel с собственным UI и UX, которые ускоряют разработку.
  • Laravel Forge[18] - инструмент для подготовки и развертывания веб-приложений. Он берет на себя большую часть административной работы.
  • October CMS[19]
  • админ-панель Voyager[20]

Конференции

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

План-график выхода релизов Laravel

Версия Дата выхода Примечание
Laravel 5.1 Июнь 2015 Исправления до июня 2017 года, исправления безопасности до июня 2018 года.
Laravel 5.2 Декабрь 2015 Выпуск подразумевает выход исправлений в течение 6 месяцев, а исправления безопасности в течение одного года.
Laravel 5.3 Июнь 2016 Исправления в течение 6 месяцев, исправления безопасности в течение одного года. В релиз вышел в конце августа 2016 года, на два месяца позже запланированного графика.
Laravel 5.4 Декабрь 2016 Исправления в течение 6 месяцев, исправления безопасности в течение одного года.
Laravel 5.5 Август 2017 Текущий LTS релиз. Исправления в течение двух лет, исправления безопасности - три года.Прекращена поддержка Laravel 5.1, но еще в течение года будут исправления безопасности.
Laravel 5.6 7 Февраля 2018 Исправления в течение 6 месяцев, исправления безопасности в течение одного года.
Laravel 5.7 4 Сентября 2018 Исправления в течение 6 месяцев, исправления безопасности до августа 2019 года
Laravel 5.8 26 Февраля 2019 Устаревшая поддерживаемая версия
Laravel 6.0 LTS 3 Сентября 2019 Текущая стабильная версия

Среда для разработки (IDE): PhpStorm

Одним из лучших инструментов является для разработки на PHP, в том числе и приложений на Laravel является PHPStorm. Плагины PHPStorm для работы с Laravel:

  1. Laravel plugin
  2. Blade Support
  3. env files support

Также плюсом является поддержка CodeStyle: PSR-2 и распознавание Blade.

Среда разработки: XAMPP

Для запуска Laravel-приложений удобно использовать XAMPP и виртуальные хосты. После установки XAMPP, через панель нужно найти httpd-vhosts.conf и добавить хост для приложения, а затем прописать новый хост (в Windows это C:\Windows\System32\drivers\etc\hosts)

Среда разработки: Виртуальный хост

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/laravel/public"
ServerName laravel.local
<Directory "C:/xampp/htdocs/laravel/public">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

DocumentRoot обязательно нужно указать папку public внутри приложения.

Настройка Laravel

Есть 2 варианта первоначальной настройки:

  1. Прописать все настройки внутри config/app.php, config/database.php
  2. Создать новый файл среды .env в котором прописать настройки

Artisan: консольный помощник Laravel

Для работы на удаленном сервере, Artisan можно использовать только при наличии доступа по протоколу SSH. Основные команды:

  • Список команд: php artisan list
  • Список команды определенного блока: php artisan list make
  • Используемая рабочая среда: php artisan env
  • Используемая версия Laravel: php artisan --version
  • Генерация ключа приложения: php artisan key:generate
  • Запуск миграций: php artisan migrate

См. также

Примечания

  1. History of Laravel PHP framework, Eloquence emerging — 2013.
  2. Release 11.5.0 — 2024.
  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.
  6. Bruno Skvorc. Лучшие PHP-фреймворки 2014 (англ.). sitepoint.com (28 декабря 2013). Дата обращения: 2 января 2014.
  7. "Laravel 5.5 LTS is Now Released". Laravel News (англ.). 2017-08-30. Дата обращения: 31 августа 2017.
  8. https://laravel-news.com/laravel-7-2-0
  9. Jeffrey Way. Почему Laravel захватывает PHP-сообщество (англ.). tutsplus.com (29 ноября 2012). Дата обращения: 21 декабря 2013.
  10. https://cssauthor.com/best-laravel-admin-panel-generators/
  11. https://prowebber.ru/internet/i-scripts/20059-josh-schablon-dlya-laravel-adminka-sayt-crud.html
  12. https://www.free-css.com/free-css-templates?start=192
  13. https://github.com/barryvdh/laravel-debugbar
  14. Taylor Otwell. Lumen - PHP Micro-Framework By Laravel. lumen.laravel.com. Дата обращения: 30 июля 2017.
  15. Spark (англ.). spark.laravel.com. Дата обращения: 30 июля 2017.
  16. Laravel Horizon - A Beautiful Dashboard For Your Redis Queue (англ.). horizon.laravel.com. Дата обращения: 30 июля 2017. Архивировано из оригинала 30 июля 2017 года.
  17. Laravel Nova - Beautifully-designed administration panel for Laravel. nova.laravel.com. Дата обращения: 10 октября 2019.
  18. Laravel Forge - Instant PHP Servers. forge.laravel.com. Дата обращения: 10 октября 2019.
  19. https://octobercms.com/docs/cms/themes
  20. https://voyager.devdojo.com/
  21. Вики Laravel (англ.). laravel.io. Дата обращения: 2 января 2014. Архивировано из оригинала 6 февраля 2014 года.
  22. Laracon EU 2013 (англ.). laracon.eu. Дата обращения: 2 января 2014.
  23. Сайт Userscape (англ.). userscape.com. Дата обращения: 2 января 2014.

Литература

Ссылки