Files
web_work/README.md
2026-01-03 18:59:56 +03:00

4.6 KiB
Raw Permalink Blame History

AETERNA - Интернет-магазин мебели

Современный интернет-магазин мебели на PHP с MVC архитектурой.

Структура проекта

aeterna/
├── app/                    # Приложение
│   ├── Controllers/        # Контроллеры
│   ├── Core/              # Ядро (App, Router, View, etc.)
│   ├── Models/            # Модели
│   └── Views/             # Шаблоны
├── config/                 # Конфигурация
│   ├── app.php            # Настройки приложения
│   ├── database.php       # Настройки БД
│   └── routes.php         # Маршруты
├── public/                 # Публичная директория (DocumentRoot)
│   ├── index.php          # Точка входа
│   ├── assets/            # Статические файлы
│   │   ├── css/
│   │   ├── js/
│   │   └── images/        # Изображения
│   └── .htaccess          # Правила Apache
├── storage/                # Хранилище
│   └── uploads/           # Загруженные файлы
├── tests/                  # Тесты
├── docker/                 # Docker конфигурация
│   └── apache/
├── docker-compose.yml
├── Dockerfile
└── README.md

Требования

  • PHP 8.2+
  • PostgreSQL 14+
  • Apache с mod_rewrite или Nginx
  • Docker (опционально)

Установка

Вариант 1: Docker (рекомендуется)

# Клонировать репозиторий
git clone <repository-url>
cd aeterna

# Запустить контейнеры
docker-compose up -d

# Приложение будет доступно по адресу:
# http://localhost:8080

Вариант 2: Локальный сервер

Apache

  1. Настройте DocumentRoot на директорию public/
<VirtualHost *:80>
    ServerName aeterna.local
    DocumentRoot /path/to/aeterna/public
    
    <Directory /path/to/aeterna/public>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
  1. Включите mod_rewrite:
sudo a2enmod rewrite
sudo systemctl restart apache2

Nginx

server {
    listen 80;
    server_name aeterna.local;
    root /path/to/aeterna/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Конфигурация

База данных

Отредактируйте config/database.php или используйте переменные окружения:

export DB_HOST=localhost
export DB_PORT=5432
export DB_DATABASE=aeterna
export DB_USERNAME=user
export DB_PASSWORD=password

Приложение

Отредактируйте config/app.php:

  • debug - режим отладки (false для продакшена)
  • url - URL приложения
  • admin_emails - email адреса администраторов

Функционал

Для покупателей

  • Каталог товаров с фильтрацией
  • Корзина покупок
  • Оформление заказов
  • Регистрация и авторизация

Для администраторов

  • Управление товарами
  • Управление категориями
  • Управление заказами
  • Управление пользователями

Маршруты

Метод URL Описание
GET / Главная страница
GET /catalog Каталог товаров
GET /product/{id} Страница товара
GET /cart Корзина
GET /login Вход
GET /register Регистрация
GET /admin Админ-панель

Технологии

  • Backend: PHP 8.2, MVC архитектура
  • Database: PostgreSQL
  • Frontend: HTML5, CSS3/LESS, JavaScript, jQuery
  • Сервер: Apache/Nginx
  • Контейнеризация: Docker

Лицензия

MIT License

Автор

AETERNA Team