Уроки курса
1 Основы синтаксиса PHP 8
60 мин
2 Функции и управляющие конструкции
60 мин
3 Объектно-ориентированное программирование на PHP
60 мин
4 Наследование, интерфейсы и полиморфизм
60 мин
5 Основы баз данных MySQL и работа через PDO
60 мин
6 Архитектурный паттерн MVC
60 мин
7 Введение в Laravel и настройка окружения
60 мин
8 Маршрутизация и контроллеры в Laravel
60 мин
9 Шаблонизатор Blade и создание интерфейса
60 мин
10 Миграции баз данных и Eloquent ORM
60 мин
11 Связи моделей в Eloquent — Настройка связей 'один …
60 мин
12 Аутентификация и защита маршрутов
60 мин
13 Разработка каталога товаров и категорий
60 мин
14 Реализация корзины покупок через сессии
60 мин
15 Оформление заказа и транзакции базы данных
60 мин
16 Интеграция платежной системы Stripe
60 мин
17 Интеграция платежной системы Vipps
60 мин
18 Разработка панели администратора
60 мин
19 Оптимизация и подготовка к production
60 мин
20 Деплой Laravel-приложения на сервер
60 мин
21 Основы PHP 8: Синтаксис, переменные и управляющие конструкции
60 мин
22 Функции и массивы в PHP 8
60 мин
23 Объектно-ориентированное программирование: Классы и объекты
60 мин
24 Продвинутое ООП: Наследование, интерфейсы и полиморфизм
60 мин
25 Основы баз данных: Проектирование БД и работа с …
60 мин
26 Взаимодействие PHP с MySQL через PDO
60 мин
27 Архитектура MVC и введение в фреймворк Laravel
60 мин
28 Маршрутизация и контроллеры в Laravel
60 мин
29 Шаблонизатор Blade: Создание пользовательского интерфейса
60 мин
30 Миграции и Eloquent ORM: Создание таблиц товаров
60 мин
31 Связи в Eloquent ORM: Отношения между моделями
60 мин
32 Аутентификация и авторизация пользователей
60 мин
33 Разработка каталога товаров: Вывод, фильтрация и пагинация
60 мин
34 Реализация корзины покупок с использованием сессий
60 мин
35 Оформление заказа: Работа с формами и валидация
60 мин
36 Транзакции базы данных: Сохранение заказа
60 мин
37 Интеграция платежной системы Stripe
60 мин
38 Интеграция платежной системы Vipps
60 мин
39 Создание панели администратора
60 мин
40 Подготовка к production и деплой приложения
60 мин
41 Основы PHP 8 и синтаксис
60 мин
42 Объектно-ориентированное программирование на PHP
60 мин
43 Продвинутое ООП и интерфейсы
60 мин
44 Основы баз данных и MySQL
60 мин
45 Архитектурный паттерн MVC
60 мин
46 Введение в Laravel и маршрутизация
60 мин
47 Шаблонизатор Blade и верстка интерфейса
60 мин
48 Миграции и структура базы данных
60 мин
49 Eloquent ORM и модели
60 мин
50 Отношения в Eloquent ORM
60 мин
51 Авторизация и защита маршрутов
60 мин
52 Создание каталога товаров
60 мин
53 Реализация корзины покупок
60 мин
54 Оформление заказа и транзакции БД
60 мин
55 Интеграция платежной системы Stripe
60 мин
56 Интеграция платежной системы Vipps
60 мин
57 Панель администратора: управление товарами
60 мин
58 Панель администратора: управление заказами
60 мин
59 Подготовка к production и деплой
60 мин
60 Запуск и тестирование готового интернет-магазина
60 мин

Архитектура MVC и введение в фреймворк Laravel

Студент разберет паттерн Model-View-Controller, установит Laravel и создаст базовую структуру проекта будущего интернет-магазина.

Прогресс урока: 0%
Понимание паттерна MVC. Прежде чем приступать к изучению фреймворков, необходимо освоить архитектурный паттерн MVC (Model-View-Controller). Этот шаблон проектирования разделяет приложение на три взаимосвязанных компонента, чтобы отделить внутреннее представление информации от способов её представления пользователю. Model (Модель) управляет данными, логикой и правилами приложения. В нашем интернет-магазине модель Product будет отвечать за извлечение товаров из БД, расчет скидок и проверку наличия на складе. View (Представление) — это любой вывод информации. Для веб-приложений это HTML-страницы, которые видит пользователь. Представление получает данные от контроллера и отображает их. Controller (Контроллер) принимает ввод (HTTP-запросы), преобразует его в команды для модели или представления. Например, когда клиент нажимает 'Добавить в корзину', запрос идет в CartController, который обновляет данные через модель и возвращает обновленное представление корзины. Такое разделение (Chunking) позволяет разработчикам работать параллельно: верстальщик правит View, пока backend-разработчик оптимизирует Model.
Компонент MVC Зона ответственности Пример в интернет-магазине
Model (Модель) Бизнес-логика, работа с БД Класс Order, сохраняющий заказ
View (Представление) Пользовательский интерфейс (UI) HTML-шаблон страницы каталога
Controller (Контроллер) Обработка запросов, маршрутизация CheckoutController@process
Введение в Laravel и установка. Laravel — это самый популярный PHP-фреймворк с открытым исходным кодом, созданный Тейлором Отвеллом. Он базируется на архитектуре MVC и предоставляет богатый набор инструментов: маршрутизацию, сессии, кэширование и аутентификацию 'из коробки'. Использование Laravel для создания e-commerce проектов позволяет сэкономить сотни часов разработки. Фреймворк берет на себя рутинные задачи, позволяя сфокусироваться на бизнес-логике. Для управления зависимостями в PHP используется Composer. Чтобы создать новый проект Laravel, необходимо открыть терминал и выполнить команду создания проекта. В процессе деплоя (переноса на production-сервер) мы будем устанавливать зависимости без dev-пакетов, но для локальной разработки нам понадобится полный набор. Laravel использует файл .env для хранения конфигурации среды. В этом файле хранятся доступы к базе данных, ключи платежных систем (например, Stripe или Vipps) и настройки почты. Критически важно: файл .env никогда не должен попадать в публичный репозиторий (Git), так как это приведет к компрометации системы.
bash
composer create-project laravel/laravel shop-project
cd shop-project
php artisan serve
Структура директорий Laravel. После генерации проекта вы увидите множество папок. Следуя принципам Mastery Learning, мы должны четко понимать назначение ключевых директорий до написания кода. Папка 'app' — ядро приложения, здесь находятся Контроллеры (app/Http/Controllers) и Модели (app/Models). Папка 'routes' содержит файлы маршрутизации, основной из которых web.php. Папка 'resources/views' предназначена для хранения шаблонов Представления (Blade-файлов). Папка 'database' содержит миграции (скрипты создания таблиц) и сидеры (скрипты для наполнения БД тестовыми данными). Наконец, директория 'public' является точкой входа (Document Root) для веб-сервера (Nginx/Apache). В ней находится файл index.php, который инициализирует фреймворк, а также публичные ассеты: CSS, JavaScript и изображения. Обратите внимание на инструмент Artisan CLI — встроенную командную строку Laravel. С помощью команд php artisan мы будем генерировать классы, выполнять миграции и сбрасывать кэш. Например, при подготовке к production-релизу обязательно выполняются команды оптимизации: php artisan config:cache и php artisan route:cache.

Какой компонент паттерна MVC в Laravel отвечает за валидацию входящего HTTP-запроса и вызов соответствующих методов для сохранения данных?

Задание

Сценарий: Вы переносите локальный проект интернет-магазина на боевой сервер (production). Определите шаги настройки окружения.

  • Скопировать файл .env.example в .env на сервере.
  • Изменить параметр APP_ENV=local на APP_ENV=production.
  • Установить APP_DEBUG=false для отключения вывода ошибок пользователям.
  • Заполнить параметры DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD реальными данными сервера БД.
  • Заменить тестовые ключи платежных систем (Stripe/Vipps) на боевые.
10 баллов