Баннер мобильный (3) Пройти тест

Laravel

Глоссарий

19 сентября 2023

Поделиться

Скопировано

Содержание

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

    лого php framework laravel
    Логотип Laravel

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

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

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

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

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

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

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

    как устроен mvc в фреймворк laravel
    Архитектура 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
    Этапы тестирования

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

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

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

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

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

    Особенности и преимущества Laravel

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

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

    русский сайт о Laravel
    Главная страница сайта laravel.ru

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

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

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

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

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

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

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

    Открытый код

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

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

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

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

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

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

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

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

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

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

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

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

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

    Недостатки

    Несмотря на множество преимуществ, фреймворк Laravel также имеет некоторые недостатки. Вот некоторые из них:

    1. Сложность для новичков: Laravel предоставляет богатый набор функций и инструментов, что может быть сложным для новичков. Освоение всех его возможностей может потребовать времени и усилий.
    2. Производительность: В сравнении с некоторыми другими более легковесными фреймворками, такими как Lumen или Slim, Laravel может иметь более высокий накладный расход производительности. Для некоторых проектов это может быть проблемой.
    3. Обновления и совместимость: При обновлении Laravel до новых версий, особенно для крупных проектов, могут возникнуть проблемы с совместимостью существующего кода. Это может потребовать дополнительных усилий для адаптации приложения к новым версиям.
    4. Многофункциональность: Для некоторых проектов Laravel может предоставлять слишком много функциональности, которая не используется в полной мере. Это может привести к избыточности кода и сложности поддержки.
    5. Объем кода: Приложения, разрабатываемые с использованием Laravel, могут иметь большой объем кода из-за множества встроенных функций и библиотек. Это может усложнить обслуживание и отладку.
    6. Изменчивость: Как и всякий фреймворк, Laravel может подвергаться изменениям со временем, что может повлиять на существующий код и требовать его обновления.
    7. Обучение и переобучение команды: Для использования Laravel необходимо обучение, и если команда разработчиков уже имеет опыт работы с другими фреймворками, потребуется время для переобучения на Laravel.
    8. Зависимость от сторонних пакетов: Laravel активно использует сторонние пакеты (composer-пакеты), и если один из таких пакетов перестанет поддерживаться или будет иметь проблемы совместимости, это может повлиять на ваш проект.

    Как установить и начать пользоваться

    Для установки и начала работы с фреймворком Laravel вам потребуется выполнить несколько шагов. Ниже приведены основные этапы:

    1. Установка Composer

      Laravel использует Composer для управления зависимостями. Если у вас его еще нет, установите его, перейдя на официальный сайт и следуйте инструкциям для вашей операционной системы.

    2. Установка Laravel

      После установки Composer выполните команду в командной строке для создания нового проекта Laravel:

      composer create-project --prefer-dist laravel/laravel имя-проекта

      Замените «имя-проекта» на имя вашего проекта. Composer загрузит все необходимые файлы и зависимости.

    3. Конфигурация базы данных

      Перейдите в каталог вашего проекта и отредактируйте файл .env, чтобы настроить параметры подключения к вашей базе данных (например, MySQL или PostgreSQL).

    4. Генерация ключа приложения

      Выполните следующую команду, чтобы сгенерировать уникальный ключ для вашего приложения:

      php artisan key:generate

    5. Запуск локального сервера

      Вы можете запустить локальный сервер для разработки, выполнив следующую команду:

      php artisan serve

    6. Создание маршрутов и контроллеров

      Laravel использует файлы маршрутов в routes/web.php для определения URL-адресов и их обработки в контроллерах. Создайте маршруты и контроллеры для вашего приложения.

    7. Создание и миграция базы данных

      Вы можете создавать и изменять таблицы базы данных с помощью миграций. Создайте миграции с помощью команды php artisan make:migration, а затем примените их с помощью php artisan migrate.

    8. Создание представлений

      Создайте представления (шаблоны) в папке resources/views для отображения данных вашего приложения.

    9. Разработка

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

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

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

    Все термины

    Поделиться

    Скопировано

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

    Комментарии
    • Ника

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

    • сона

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