Laravel

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

Логотип Laravel

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

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

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

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

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

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

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

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

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

Профессия

Веб-разработчик с нуля

Освойте веб-разработку за 12 месяце и делайте сайты и приложения любой сложности.

Узнать подробности

Возможности фреймворка 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 сложнее конкурентов в изучении.

Профессия

Веб-разработчик с нуля

За 12 месяцев вы освоите базовую верстку, frontend и backend. В конце обучения у вас будет готовое портфолио из проектов.

  • тренажеры по HTML, CSS, JavaScript, PHP, SQL, React;
  • выбор направления: frontend, backend или fullstack;
  • консультации в Центре карьеры.

Узнать больше

 

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

LFU
Linux
Lombok
LRU

Все термины

Курсы по теме

(рейтинг: 5, голосов: 3)
Добавить комментарий