Skip to content

farik92/smartyBlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple PHP Blog (Smarty + MySQL)

Stack

  • PHP 8.1+
  • MySQL 8+
  • Smarty 4
  • Без фреймворков

Features

  • Категории и посты (многие‑ко‑многим)
  • Главная: категории с 3 последними постами
  • Категория: сортировка по дате/просмотрам + пагинация
  • Пост: полный контент + 3 похожих
  • Страница всех постов: /posts
  • Slug‑маршруты
  • Базовая sanitize‑allowlist для HTML тела статьи
  • Smarty‑кеширование (учет sort/page)
  • Демонстрационный сидинг

Project structure

  • public/ — public root
  • app/ — MVC слой
  • templates/ — Smarty шаблоны
  • database/ — схема БД и сидинг
  • docker/ — Dockerfile и связанные файлы
  • var/ — компиляция Smarty

Requirements

  • PHP 8.1+
  • MySQL 8+
  • Composer

Setup

docker compose up -d --build

Установить зависимости:

docker compose exec web composer install

Настроить переменные окружения в .env при необходимости. Порты на хосте задаются через APP_PORT (веб) и DB_HOST_PORT (MySQL).

Импорт схемы БД:

docker compose exec db sh -c "MYSQL_PWD=root mysql -uroot blog < /var/www/html/database/schema.sql"

Сидинг:

docker compose exec web php database/clear_db.php
docker compose exec web php database/seed.php

SCSS:

# watch
docker compose up sass

# build once
docker compose run --rm sass /sass:/css

Настроить параметры подключения в app/Config/config.php при необходимости.

Открыть в браузере:

Routes

  • /posts
  • /category/{slug}
  • /post/{slug}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors