Уроки курса
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 мин

Введение в Laravel и настройка окружения

Установка фреймворка, изучение структуры директорий и базовая настройка конфигурации через файл .env.

Прогресс урока: 0%

Теперь, когда мы понимаем архитектуру MVC, пришло время познакомиться с Laravel — самым популярным PHP-фреймворком в мире. Зачем нам фреймворк? Разработка интернет-магазина с нуля на 'чистом' PHP (Vanilla PHP) требует написания огромного количества инфраструктурного кода: маршрутизатора, системы аутентификации, защиты от CSRF и XSS атак, оберток для работы с базой данных. Laravel берет эту рутину на себя, предоставляя изящный синтаксис и мощные инструменты прямо 'из коробки'. Это позволяет разработчику сфокусироваться на уникальной бизнес-логике проекта (создании корзины, интеграции Stripe/Vipps), а не на изобретении велосипеда.

Установка Laravel происходит через менеджер зависимостей Composer. Команда composer create-project laravel/laravel shop создаст новую директорию 'shop' и скачает все необходимые файлы фреймворка. После установки важно понять структуру директорий. Папка app/ содержит ядро вашего приложения (здесь будут лежать Модели и Контроллеры). Папка routes/ содержит файлы маршрутизации (web.php для браузера, api.php для API). В resources/views/ хранятся шаблоны (Представления). Папка public/ — это единственная директория, доступная из интернета; она содержит index.php, который является точкой входа (Front Controller) для всех HTTP-запросов. Папка storage/ используется для хранения скомпилированных шаблонов, сессий, кэша и загруженных пользователями файлов.

Один из важнейших файлов в корне проекта — это файл конфигурации окружения .env. В этом файле хранятся все чувствительные данные и настройки, которые могут меняться в зависимости от того, где запущено приложение (на вашем локальном компьютере или на боевом сервере — production). В архиве нашего курса (упражнение 3.2) указано, какие параметры критически важно изменить при переносе (деплое) проекта. На локальном сервере параметр APP_ENV=local и APP_DEBUG=true, что позволяет видеть подробные сообщения об ошибках. На боевом сервере обязательно нужно выставить APP_ENV=production и APP_DEBUG=false, иначе злоумышленники смогут увидеть стек вызовов и данные вашей БД при возникновении ошибки.

В файле .env также настраивается подключение к базе данных (секция DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD). Помните: файл .env никогда не должен попадать в систему контроля версий (Git). Для этого он по умолчанию добавлен в файл .gitignore. В репозиторий отправляется только файл .env.example, который служит шаблоном для других разработчиков. Также в .env будут храниться секретные ключи платежных систем (Stripe Secret Key). Разделение конфигурации и кода — это один из ключевых принципов создания 12-факторных приложений (12-Factor App), гарантирующий безопасность и гибкость масштабирования.

env
APP_NAME="My E-commerce Shop"
APP_ENV=local
APP_KEY=base64:YOUR_GENERATED_KEY_HERE
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shop_db
DB_USERNAME=root
DB_PASSWORD=secret

STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_...

Задание

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

  • Установите Laravel через Composer: composer create-project laravel/laravel ecommerce
  • Перейдите в папку проекта: cd ecommerce
  • Создайте базу данных 'ecommerce_db' в MySQL.
  • Откройте файл .env и обновите параметры DB_DATABASE, DB_USERNAME и DB_PASSWORD.
  • Запустите встроенный сервер: php artisan serve
10 баллов

Какое значение должен иметь параметр APP_DEBUG в файле .env на 'боевом' сервере (production), доступном реальным клиентам?

Как называется утилита командной строки в Laravel, которая используется для запуска сервера, создания контроллеров и выполнения миграций (например, php ___ serve)?