- PHP 8.1+
- Smarty
- MySQL
- PDO
- Phinx
- Docker
- Выводит только категории, в которых есть статьи.
- Для каждой категории показывает 3 последних поста по дате публикации.
- Для каждой категории есть кнопка
Все статьи.
- Название, описание категории и список статей.
- Сортировка:
- по дате публикации
- по количеству просмотров
- Пагинация.
- Полная информация по статье.
- Увеличение счетчика просмотров при открытии.
- Блок из 3 похожих статей.
Точка входа: public/index.php
Структура слоев:
src/DomainEntity— доменные сущности (Category,Post)Repository— интерфейсы репозиториев
src/Application- use-case директории (
GetHomePage,GetCategoryPage,GetPostPage) - в каждом use-case:
DTO/RequestDTODTO/ResponseDTOGet...Service
- use-case директории (
src/InfrastructurePersistence/MySql— реализация репозиториев на PDODatabase— фабрика подключения PDOHttp— инфраструктурные HTTP-компоненты (Request,Router)Templating— фабрика SmartyConfig— загрузка envBootstrap— композиция приложения (DI/роутинг)
src/PresentationHttp/Controller— тонкие контроллеры
Дополнительно:
templates/— Smarty-шаблоныassets/— стили (scssи готовыйcss)db/migrations— миграции Phinx- отдельная миграция на каждую таблицу (
categories,posts,post_categories)
- отдельная миграция на каждую таблицу (
db/seeds— сидеры Phinx
- Создать env:
cp .env.example .env- Поднять окружение:
docker compose up -d --build- Установить зависимости:
docker compose exec app composer install- Применить миграции:
docker compose exec app vendor/bin/phinx migrate -e development- Заполнить базу тестовыми данными:
docker compose exec app vendor/bin/phinx seed:run -e development -s BlogSeeder- Открыть в браузере:
docker compose exec app vendor/bin/phinx status -e development
docker compose exec app vendor/bin/phinx rollback -e development