Баннер мобильный (2) Научиться

Laravel

Словарь

24 марта 2023

Поделиться

Скопировано

Содержание

    Laravel («Ларавел» или «Ларавель») — это бесплатный PHP-фреймворк с открытым исходным кодом, специально разработанный для создания сложных сайтов и веб-приложений. Позволяет упростить аутентификацию, маршрутизацию, сессии, кэширование, архитектуру приложения, работу с базой данных.

    Логотип Laravel

    Кто и зачем использует Laravel

    Laravel пользуются backend-разработчики, которые пишут код на PHP. Он помогает определить структуру веб-приложения и служит для нее каркасом. Фреймворк написан на PHP и расширяет его возможности. Распространяется бесплатно под лицензией MIT.

    Назначение Laravel — создание веб-приложений и сайтов на основе MVC (model-view-controller). Это вариант архитектуры, при котором компоненты программы делятся на три части:

    • модель (model) предоставляет данные и методы работы с ними: запросы в базу данных, проверка на корректность;
    • представление (view) показывает пользователю эти данные и изменяется, если меняется модель;
    • контроллер (controller) направляет данные от пользователя к системе и наоборот.

    Когда пользователь работает с приложением, построенным по схеме MVC, он взаимодействует с представлением и контроллером. Представление — это то, что он видит, например сведения, которые отображены в визуальном интерфейсе. А контроллеру пользователь отдает команды.

    Например, нажатие на кнопку в приложении будет обращением к контроллеру. Тот видоизменит модель. Потом обновится представление: оно получит из модели новые данные и изменит состояние. Так пользователь увидит результат нажатия на кнопку.

    Наглядно взаимодействие представлено на схеме.

    Архитектура MVC

    Архитектура MVC позволяет писать более читабельный код, а процесс разработки сделать комфортным, разграничивая работу frontend- и backend-разработчиков.

    Возможности фреймворка Laravel

    Консоль Artisan

    Artisan — интерфейс командной строки, включенный в Lavarel. Он позволяет генерировать модели, новые тесты, контроллеры, уведомления из командной строки. Это намного удобнее, чем копировать откуда-либо шаблон класса или писать его вручную. Чтобы посмотреть команды, вы можете воспользоваться командой list:list: php artisan list

    Консоль используют для работы с базами данных, управления контроллером и других действий. Разработчик может написать для нее собственные команды.

    Eloquent ORM

    ORM — это технология программирования для связи базы данных и языка программирования. Использование ORM позволяет ускорить разработку. Для PHP существует множество реализаций ORM, но Laravel пользуется собственной. Она называется Eloquent и работает по схеме ActiveRecord, согласно которой каждой таблице в базе соответствует один класс. Eloquent любят за удобство и возможность писать понятный код, который легко поддерживать, защиту от SQL-инъекций — способа взлома сайтов и программ. ORM можно загрузить отдельно от остальных компонентов Laravel.

    Конструктор Fluent

    Это конструктор для быстрого построения запросов к базе, который полностью совместим с ядром Eloquent ORM. Fluent — мощный инструмент, позволяющий с легкостью модифицировать записи в базе данных. Все запросы используют подготовленные выражения и защищены от SQL-инъекций.

    Шаблонизатор Blade

    Шаблонизаторы используются для превращения HTML-шаблонов в готовые страницы. Шаблоны — это заготовки для будущих веб-страниц, которые включают HTML-верстку без контента и PHP-код. Задача программы-шаблонизатора — выполнить PHP-код и подставить в шаблон контент, чтобы превратить его в готовую страницу. PHP в итоговой веб-странице быть не должно.

    Blade — это шаблонизатор фреймворка Laravel. Он не имеет ограничений на чистый PHP в шаблонах — это удобнее для backend-разработчика. Отсутствие ограничений не создает дополнительной нагрузки на приложение.

    Валидация

    Валидация — проверка входящих данных. Она нужна, чтобы случайная ошибка была вовремя найдена и обработана. Логику валидации можно написать самостоятельно. Если пользователь введет неверные данные, он попадет на предыдущую страницу. Сайт не «упадет» и останется работоспособным.

    Система контроля версий баз данных

    Это позволяет проводить миграции — модификации структуры базы данных. С помощью фреймворка можно гибко управлять миграцией прямо через Artisan: запускать, откатывать по отдельности или полностью, видоизменять.

    Юнит-тестирование

    Его еще называют модульным тестированием. Это «базовый уровень» проведения тестов. На работоспособность тестируются отдельные модули кода. Это нужно, чтобы позже не столкнуться с ошибкой на более высоких уровнях.

    Этапы тестирования

    В Laravel по умолчанию встроена система PHPUnit — инструмент, который позволяет создавать и проводить тесты. С PHPUnit это проще, чем вручную.

    Аутентификация

    С Laravel можно реализовать вход на сайт с помощью логина и пароля либо через социальные сети.

    Например, пакеты Laravel Passport и Laravel Socialite позволяют входить через API других приложений с помощью стандарта OAuth. Это протокол авторизации, который дает возможность авторизоваться с помощью учетной записи другого сайта, чаще всего соцсети.

    Пакет Laravel Sanctum отвечает за аутентификацию для простых приложений и одностраничных сайтов. Он более легковесный, чем Passport, и авторизует пользователя с помощью системы токенов — физических устройств.

    Особенности Laravel

    Развитая экосистема

    Комьюнити включает несколько сайтов (на русском языке https://laravel.su/, https://laravel.ru/) со статьями об особенностях Laravel, дополнительным программным обеспечением для удобной работы с фреймворком.

    Существуют мировые конференции — они называются Laracon и проводятся с 2013 года.

    Экосистема постоянно развивается. Это помогает поддерживать интерес к проекту со стороны спонсоров и способствует развитию Laravel.

    Высокая производительность

    Laravel поддерживает noSQL-базы данных. Они отличаются более высокой скоростью работы, чем привычные БД. Информация хранится в оперативной памяти сервера, поэтому можно быстро получить к ней доступ.

    Laravel позволяет управлять кэшированием и имеет собственный механизм очередности процессов. Это повышает производительность, ускоряет доступ к данным и уменьшает нагрузку на вычислительные мощности.

    Безопасность

    В Laravel встроены механизмы защиты от SQL-инъекций и XSS-атак. SQL-инъекции не дает провести собственная ORM: она не позволяет обрабатывать посторонние SQL-запросы. А от XSS-атак защищает возможность экранировать теги.

    Открытый код

    Laravel — open-source программное обеспечение. Это значит, что любой разработчик может внести изменения в собственный экземпляр ПО. Исходный код выложен на GitHub. На практике этой возможностью пользуются очень редко. Фреймворки обычно не переписывают, чтобы избежать конфликтов с обновлениями. Польза в другом: можно просмотреть код программного обеспечения и понять, как работает тот или иной модуль.

    Понятный синтаксис

    У Laravel понятный синтаксис — это способствует читаемости кода. В нем нет длинных и сложных конструкций, много «синтаксического сахара». Так называют команды и возможности, которые не добавляют в ПО ничего нового, но делают написание кода проще.

    Гибкая маршрутизация

    Маршрутизация — это создание маршрута, по которому информация передается от одной точки к другой. В веб-программировании это анализ URL и запроса пользователя и выполнение кода в зависимости от запроса. Можно выделять маршруты в группы, использовать различные способы проверки, управлять пространствами имен и применять регулярные выражения.

    Легкая миграция

    Благодаря системе контроля версий структуры БД разработчикам легко изменять и при необходимости откатывать базу. Поэтому риск критичной поломки БД сводится к минимуму — это важно, если над проектом одновременно работают несколько человек.

    Мультиязычность

    Laravel можно использовать для создания сайтов на несколько языковых зон. Это, например, сайты для русскоязычных и англоязычных пользователей. Фреймворк поддерживает множество языков. Настроить многоязычность можно очень быстро.

    Обилие пакетов и библиотек

    Библиотеки нужны для решения конкретных задач и позволяют в одну строчку выполнить действие, которое при написании вручную языке заняло бы десятки строк. Это своеобразные наборы функций для упрощения работы программиста. Их можно скачать и использовать при разработке.

    Пакеты — это программные модули, которые подключаются к фреймворку и расширяют его возможности. Они более функциональны, чем единичные библиотеки, и нужны для реализации определенных решений. Например, Laravel Sanctum — это пакет для быстрой аутентификации по токену.

    Несмотря на функциональность, фреймворк оставляет специалисту много ручного труда. Это обеспечивает гибкость при создании программных решений, но и сильно замедляет работу. Также Laravel сложнее конкурентов в изучении.

    Другие термины на «L»

    Все термины

    Поделиться

    Скопировано

    2 комментария

    Комментарии

    • Ника

      Да, на нем можно реализовать rest api

    • сона

      ларавел используют для написания rest api ?