Введение в Laravel и настройка окружения
Установка фреймворка, изучение структуры директорий и базовая настройка конфигурации через файл .env.
Теперь, когда мы понимаем архитектуру 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), гарантирующий безопасность и гибкость масштабирования.
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