Студент разберет паттерн 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.
Флеш-карточки
1 /
Где в проекте Laravel хранятся настройки подключения к базе данных и ключи API?
Нажмите, чтобы увидеть ответ
В корневом файле .env (Environment Variables).
Нажмите, чтобы вернуться
Какая директория является единственной публично доступной (Document Root) в Laravel приложении?
Нажмите, чтобы увидеть ответ
Директория public/
Нажмите, чтобы вернуться
Какой компонент паттерна MVC в Laravel отвечает за валидацию входящего HTTP-запроса и вызов соответствующих методов для сохранения данных?
Задание
Сценарий: Вы переносите локальный проект интернет-магазина на боевой сервер (production). Определите шаги настройки окружения.
Скопировать файл .env.example в .env на сервере.
Изменить параметр APP_ENV=local на APP_ENV=production.
Установить APP_DEBUG=false для отключения вывода ошибок пользователям.