Skip to content

Paarmizan/blogs

Repository files navigation

Blogy

  • PHP 8.1+
  • Smarty
  • MySQL
  • PDO
  • Phinx
  • Docker

Функционал

Главная (/)

  • Выводит только категории, в которых есть статьи.
  • Для каждой категории показывает 3 последних поста по дате публикации.
  • Для каждой категории есть кнопка Все статьи.

Страница категории (/category/{id})

  • Название, описание категории и список статей.
  • Сортировка:
    • по дате публикации
    • по количеству просмотров
  • Пагинация.

Страница статьи (/post/{id})

  • Полная информация по статье.
  • Увеличение счетчика просмотров при открытии.
  • Блок из 3 похожих статей.

Архитектура

Точка входа: public/index.php

Структура слоев:

  • src/Domain
    • Entity — доменные сущности (Category, Post)
    • Repository — интерфейсы репозиториев
  • src/Application
    • use-case директории (GetHomePage, GetCategoryPage, GetPostPage)
    • в каждом use-case:
      • DTO/RequestDTO
      • DTO/ResponseDTO
      • Get...Service
  • src/Infrastructure
    • Persistence/MySql — реализация репозиториев на PDO
    • Database — фабрика подключения PDO
    • Http — инфраструктурные HTTP-компоненты (Request, Router)
    • Templating — фабрика Smarty
    • Config — загрузка env
    • Bootstrap — композиция приложения (DI/роутинг)
  • src/Presentation
    • Http/Controller — тонкие контроллеры

Дополнительно:

  • templates/ — Smarty-шаблоны
  • assets/ — стили (scss и готовый css)
  • db/migrations — миграции Phinx
    • отдельная миграция на каждую таблицу (categories, posts, post_categories)
  • db/seeds — сидеры Phinx

Быстрый старт

  1. Создать env:
cp .env.example .env
  1. Поднять окружение:
docker compose up -d --build
  1. Установить зависимости:
docker compose exec app composer install
  1. Применить миграции:
docker compose exec app vendor/bin/phinx migrate -e development
  1. Заполнить базу тестовыми данными:
docker compose exec app vendor/bin/phinx seed:run -e development -s BlogSeeder
  1. Открыть в браузере:

Полезные команды

docker compose exec app vendor/bin/phinx status -e development
docker compose exec app vendor/bin/phinx rollback -e development

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors