3. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Кто и зачем используют ‘Laravel’;
Laravel пользуются backend-разработчики, которые пишут код на PHP. Он
помогает определить структуру веб-приложения и служит для нее каркасом.
Фреймворк написан на PHP и расширяет его возможности. Распространяется
бесплатно под лицензией MIT.
Назначение Laravel — создание веб-приложений и сайтов на основе MVC
(model-view-controller). Это вариант архитектуры, при котором компоненты
программы делятся на три части:
∗ модель (model) предоставляет данные и методы работы с ними: запросы
в базу данных, проверка на корректность;
∗ представление (view) показывает пользователю эти данные и
изменяется, если меняется модель;
∗ контроллер (controller) направляет данные от пользователя к системе
и наоборот.
Programming Language
forbeginners.html workshop.css
4. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
laravel
∗ Когда пользователь работает с приложением, построенным
по схеме MVC, он взаимодействует с представлением и
контроллером. Представление — это то, что он видит,
например сведения, которые отображены в визуальном
интерфейсе. А контроллеру пользователь отдает команды.
∗ Например, нажатие на кнопку в приложении будет
обращением к контроллеру. Тот видоизменит модель. Потом
обновится представление: оно получит из модели новые
данные и изменит состояние. Так пользователь увидит
результат нажатия на кнопку.
Programming Language
forbeginners.html workshop.css
6. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Консоль Artisan
∗ Artisan — интерфейс командной строки, включенный в
Lavarel. Он позволяет генерировать модели, новые тесты,
контроллеры, уведомления из командной строки. Это намного
удобнее, чем копировать откуда-либо шаблон класса или
писать его вручную. Чтобы посмотреть команды, вы можете
воспользоваться командой list:
list: php artisan list
∗ Консоль используют для работы с базами данных, управления
контроллером и других действий. Разработчик может
написать для нее собственные команды.
Programming Language
forbeginners.html workshop.css
7. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Eloquent ORM
∗ ORM — это технология программирования для связи базы
данных и языка программирования. Использование ORM
позволяет ускорить разработку. Для PHP существует
множество реализаций ORM, но Laravel пользуется
собственной. Она называется Eloquent и работает по схеме
ActiveRecord, согласно которой каждой таблице в базе
соответствует один класс.
∗ Eloquent любят за удобство и возможность писать понятный
код, который легко поддерживать, защиту от SQL-инъекций —
способа взлома сайтов и программ. ORM можно загрузить
отдельно от остальных компонентов Laravel.
Programming Language
forbeginners.html workshop.css
8. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Конструктор Fluent
∗ Это конструктор для быстрого
построения запросов к базе, который
полностью совместим с ядром Eloquent
ORM. Fluent — мощный инструмент,
позволяющий с легкостью модифицировать
записи в базе данных. Все запросы
используют подготовленные выражения и
защищены от SQL-инъекций.
Programming Language
forbeginners.html workshop.css
9. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Шаблонизатор Blade
∗ Шаблонизаторы используются для превращения HTML-шаблонов
в готовые страницы. Шаблоны — это заготовки для будущих
веб-страниц, которые включают HTML-верстку без контента и
PHP-код. Задача программы-шаблонизатора — выполнить PHP-
код и подставить в шаблон контент, чтобы превратить его в
готовую страницу. PHP в итоговой веб-странице быть не
должно.
∗ Blade — это шаблонизатор фреймворка Laravel. Он не имеет
ограничений на чистый PHP в шаблонах — это удобнее для
backend-разработчика. Отсутствие ограничений не создает
дополнительной нагрузки на приложение.
Programming Language
forbeginners.html workshop.css
10. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Валидация
∗ Валидация — проверка входящих данных.
Она нужна, чтобы случайная ошибка была
вовремя найдена и обработана. Логику
валидации можно написать
самостоятельно. Если пользователь
введет неверные данные, он попадет на
предыдущую страницу. Сайт не «упадет»
и останется работоспособным.
Programming Language
forbeginners.html workshop.css
11. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Система контроля версий БД
∗ Это позволяет проводить миграции
— модификации структуры базы
данных. С помощью фреймворка
можно гибко управлять миграцией
прямо через Artisan: запускать,
откатывать по отдельности или
полностью, видоизменять.
Programming Language
forbeginners.html workshop.css
12. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Юнит-тестирование
{
< Его еще называют модульным
тестированием. Это «базовый
уровень» проведения тестов. На
работоспособность тестируются
отдельные модули кода. Это нужно,
чтобы позже не столкнуться с
ошибкой на более высоких
уровнях.>
Programming Language
forbeginners.html workshop.css
}
13. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Аутентификация
∗ С Laravel можно реализовать вход на сайт с помощью логина
и пароля либо через социальные сети.
∗ Например, пакеты Laravel Passport и Laravel Socialite
позволяют входить через API других приложений с помощью
стандарта OAuth. Это протокол авторизации, который дает
возможность авторизоваться с помощью учетной записи
другого сайта, чаще всего соцсети.
∗ Пакет Laravel Sanctum отвечает за аутентификацию для
простых приложений и одностраничных сайтов. Он более
легковесный, чем Passport, и авторизует пользователя с
помощью системы токенов — физических устройств.
Programming Language
forbeginners.html workshop.css
15. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Развитая экосистема
∗ Комьюнити включает несколько сайтов (на русском
языке https://laravel.su/, https://laravel.ru/) со
статьями об особенностях Laravel, дополнительным
программным обеспечением для удобной работы с
фреймворком.
∗ Существуют мировые конференции — они называются Laracon и
проводятся с 2013 года.
∗ Экосистема постоянно развивается. Это помогает
поддерживать интерес к проекту со стороны спонсоров и
способствует развитию Laravel.
Programming Language
forbeginners.html workshop.css
16. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Высокая производительность
∗ Laravel поддерживает noSQL-базы данных. Они
отличаются более высокой скоростью работы, чем
привычные БД. Информация хранится в
оперативной памяти сервера, поэтому можно
быстро получить к ней доступ.
∗ Laravel позволяет управлять кэшированием и
имеет собственный механизм очередности
процессов. Это повышает производительность,
ускоряет доступ к данным и уменьшает нагрузку
на вычислительные мощности.
Programming Language
forbeginners.html workshop.css
17. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Безопасность
∗ В Laravel встроены механизмы защиты от
SQL-инъекций и XSS-атак. SQL-инъекции
не дает провести собственная ORM: она
не позволяет обрабатывать посторонние
SQL-запросы. А от XSS-атак защищает
возможность экранировать теги.
Programming Language
forbeginners.html workshop.css
18. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Открытый код
∗ Laravel — open-source программное обеспечение. Это
значит, что любой разработчик может внести изменения в
собственный экземпляр ПО. Исходный код выложен на GitHub.
На практике этой возможностью пользуются очень редко.
Фреймворки обычно не переписывают, чтобы избежать
конфликтов с обновлениями. Польза в другом: можно
просмотреть код программного обеспечения и понять, как
работает тот или иной модуль.
Programming Language
forbeginners.html workshop.css
19. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Понятный синтаксис
∗ У Laravel понятный синтаксис — это
способствует читаемости кода. В нем
нет длинных и сложных конструкций,
много «синтаксического сахара». Так
называют команды и возможности,
которые не добавляют в ПО ничего
нового, но делают написание кода
проще.
Programming Language
forbeginners.html workshop.css
20. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Гибкая маршрутизация
∗ Маршрутизация — это создание маршрута, по
которому информация передается от одной точки
к другой. В веб-программировании это анализ
URL и запроса пользователя и выполнение кода в
зависимости от запроса. Можно выделять
маршруты в группы, использовать различные
способы проверки, управлять пространствами
имен и применять регулярные выражения.
Programming Language
forbeginners.html workshop.css
21. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Легкая миграция
∗ Благодаря системе контроля версий
структуры БД разработчикам легко
изменять и при необходимости
откатывать базу. Поэтому риск
критичной поломки БД сводится к
минимуму — это важно, если над
проектом одновременно работают
несколько человек.
Programming Language
forbeginners.html workshop.css
22. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Мультиязычность
∗ Laravel можно использовать для
создания сайтов на несколько языковых
зон. Это, например, сайты для
русскоязычных и англоязычных
пользователей. Фреймворк поддерживает
множество языков. Настроить
многоязычность можно очень быстро
Programming Language
forbeginners.html workshop.css
23. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Обилие пакетов и библиотек
∗ Библиотеки нужны для решения конкретных задач и
позволяют в одну строчку выполнить действие, которое
при написании вручную языке заняло бы десятки строк.
Это своеобразные наборы функций для упрощения работы
программиста. Их можно скачать и использовать при
разработке.
∗ Пакеты — это программные модули, которые подключаются
к фреймворку и расширяют его возможности. Они более
функциональны, чем единичные библиотеки, и нужны для
реализации определенных решений. Например, Laravel
Sanctum — это пакет для быстрой аутентификации по
токену.
Programming Language
forbeginners.html workshop.css
25. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
∗ Сложность для новичков: Laravel предоставляет богатый набор
функций и инструментов, что может быть сложным для новичков.
Освоение всех его возможностей может потребовать времени и усилий.
∗ Производительность: В сравнении с некоторыми другими более
легковесными фреймворками, такими как Lumen или Slim, Laravel
может иметь более высокий накладный расход производительности. Для
некоторых проектов это может быть проблемой.
∗ Обновления и совместимость: При обновлении Laravel до новых
версий, особенно для крупных проектов, могут возникнуть проблемы с
совместимостью существующего кода. Это может потребовать
дополнительных усилий для адаптации приложения к новым версиям.
∗ Многофункциональность: Для некоторых проектов Laravel может
предоставлять слишком много функциональности, которая не
используется в полной мере. Это может привести к избыточности кода
и сложности поддержки.
Programming Language
forbeginners.html workshop.css
26. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
∗ Объем кода: Приложения, разрабатываемые с использованием Laravel,
могут иметь большой объем кода из-за множества встроенных функций
и библиотек. Это может усложнить обслуживание и отладку.
∗ Изменчивость: Как и всякий фреймворк, Laravel может подвергаться
изменениям со временем, что может повлиять на существующий код и
требовать его обновления.
∗ Обучение и переобучение команды: Для использования Laravel
необходимо обучение, и если команда разработчиков уже имеет опыт
работы с другими фреймворками, потребуется время для переобучения
на Laravel.
∗ Зависимость от сторонних пакетов: Laravel активно использует
сторонние пакеты (composer-пакеты), и если один из таких пакетов
перестанет поддерживаться или будет иметь проблемы совместимости,
это может повлиять на ваш проект.
Programming Language
forbeginners.html workshop.css
27. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Как установить и начать пользоваться; {
< Перейдите в каталог вашего проекта и
измените файл .env, чтобы настроить параметры
подключения к БД >
< CMD: composer create-project --prefer-dist
laravel/laravel имя-проекта >
Установка Laravel
< Перейти на getcomposer.org и установить >
Установка Composer
Конфигурация базы данных
}
Programming Language
forbeginners.html workshop.css
28. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Как установить и начать пользоваться; {
< Laravel использует файлы маршрутов
в routes/web.php для определения URL-адресов и их
обработки в контроллерах. Создайте маршруты и
контроллеры для вашего приложения. >
< CMD: php artisan serve >
Запуск локального сервера
< CMD: php artisan key:generate >
Генерация ключа приложения
Создание маршрутов и контроллеров
}
Programming Language
forbeginners.html workshop.css
29. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Как установить и начать пользоваться; {
< Теперь вы можете начать разрабатывать свое
приложение, добавляя маршруты, контроллеры,
представления и другие компоненты Laravel. >
< Создайте представления (шаблоны) в
папке resources/views для отображения данных вашего
приложения. >
Создание представлений
< Создайте миграции с помощью команды php artisan
make:migration, а затем примените их с помощью php
artisan migrate. >
Создание и миграция базы данных
Разработка
}
Programming Language
forbeginners.html workshop.css