172 lines
4.6 KiB
Markdown
172 lines
4.6 KiB
Markdown
# 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 <repository-url>
|
||
cd aeterna
|
||
|
||
# Запустить контейнеры
|
||
docker-compose up -d
|
||
|
||
# Приложение будет доступно по адресу:
|
||
# http://localhost:8080
|
||
```
|
||
|
||
### Вариант 2: Локальный сервер
|
||
|
||
#### Apache
|
||
|
||
1. Настройте DocumentRoot на директорию `public/`
|
||
|
||
```apache
|
||
<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>
|
||
```
|
||
|
||
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
|
||
|