# 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 (рекомендуется) ```bash # Клонировать репозиторий git clone cd aeterna # Запустить контейнеры docker-compose up -d # Приложение будет доступно по адресу: # http://localhost:8080 ``` ### Вариант 2: Локальный сервер #### Apache 1. Настройте DocumentRoot на директорию `public/` ```apache ServerName aeterna.local DocumentRoot /path/to/aeterna/public Options -Indexes +FollowSymLinks AllowOverride All Require all granted ``` 2. Включите mod_rewrite: ```bash sudo a2enmod rewrite sudo systemctl restart apache2 ``` #### Nginx ```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` или используйте переменные окружения: ```bash 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