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

Подготовка к production и деплой

Студент узнает, как правильно настроить .env файл для боевого сервера и оптимизировать приложение с помощью команд кеширования.

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

Введение в процесс развертывания (Деплой)

Деплой (Deployment) — это процесс переноса вашего приложения с локального компьютера разработчика на боевой сервер (production), где оно будет доступно реальным пользователям интернета. Это один из самых ответственных этапов. Локальная среда настроена для удобства отладки: она показывает подробные тексты ошибок, не кэширует файлы для мгновенного применения изменений. Боевая среда должна быть настроена на максимальную производительность и абсолютную безопасность.

Основной инструмент настройки окружения в Laravel — файл `.env`. При клонировании проекта на сервер файл `.env` не переносится (он добавлен в `.gitignore`). Вы должны создать его на сервере на основе шаблона `.env.example` и заполнить актуальными данными (Mastery Learning).

ini
# Пример правильной настройки .env для боевого сервера (Production)

# Имя приложения
APP_NAME="My Super Shop"

# Среда окружения. Обязательно production!
APP_ENV=production

# Режим отладки. СТРОГО false. Иначе пользователи увидят ваш исходный код при ошибках.
APP_DEBUG=false

# Базовый URL вашего сайта
APP_URL=https://myshop.com

# Настройки базы данных (указываются доступы боевой БД)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shop_production
DB_USERNAME=prod_user
DB_PASSWORD=SuperSecretPassword123!

# Ключи платежных систем (меняем тестовые на боевые/Live keys)
STRIPE_SECRET=sk_live_51H...
VIPPS_CLIENT_ID=live_client_...

Кэширование и оптимизация производительности

Laravel — мощный фреймворк, но при каждом запросе он выполняет множество операций: читает файлы конфигурации, парсит маршруты, компилирует шаблоны. На сервере мы можем закэшировать эти данные, чтобы они загружались в память мгновенно (Direct Instruction). На основе архивных материалов курса, существует четыре основные команды Artisan, которые необходимо выполнять при каждом деплое приложения.

1. `php artisan config:cache` — объединяет все файлы конфигурации в один кэшированный файл. После этого изменения в `.env` не будут работать, пока вы не очистите кэш!
2. `php artisan route:cache` — компилирует все маршруты в массив для сверхбыстрого поиска. (Работает только если в маршрутах нет анонимных функций/замыканий).
3. `php artisan view:cache` — заранее компилирует все Blade-шаблоны в чистый PHP-код.
4. `php artisan event:cache` — кэширует события и слушатели.

Задание

Пошаговый процесс деплоя приложения на сервер (Ubuntu/Nginx)

  • Клонируйте репозиторий проекта: git clone https://github.com/your/repo.git .
  • Установите PHP-зависимости без пакетов для разработки: composer install --optimize-autoloader --no-dev
  • Создайте файл .env, скопируйте в него данные и установите APP_ENV=production и APP_DEBUG=false.
  • Сгенерируйте ключ приложения: php artisan key:generate
  • Выполните миграции БД: php artisan migrate --force (флаг --force нужен для production).
  • Настройте права доступа к папкам: chmod -R 775 storage bootstrap/cache
  • Выполните команды оптимизации: php artisan optimize (эта команда вызывает config:cache и route:cache автоматически).
10 баллов

Сборка Frontend ассетов и SSL

Современный Laravel использует Vite (ранее Webpack/Mix) для сборки JavaScript и CSS файлов. На локальном компьютере вы запускали `npm run dev` для горячей перезагрузки. На сервере необходимо выполнить `npm install`, а затем `npm run build`. Эта команда минифицирует файлы, удаляет лишние комментарии и добавляет хэши к именам файлов для обхода кэша браузера при обновлениях.

Наконец, наличие SSL-сертификата (HTTPS) является абсолютно обязательным требованием для любого интернет-магазина. Платежные шлюзы (Stripe, Vipps) откажутся работать с вашим сайтом, если он работает по протоколу HTTP. Вы можете использовать бесплатные сертификаты от Let's Encrypt, которые легко устанавливаются с помощью утилиты Certbot на вашем сервере.

Почему параметр APP_DEBUG в файле .env должен быть строго установлен в false на боевом сервере?

Какую artisan-команду нужно выполнить, чтобы закэшировать все файлы конфигурации и ускорить работу приложения?