Fix LESS import error and refactor project structure

This commit is contained in:
kirill.khorkov
2026-01-03 18:59:56 +03:00
parent 1bb0fc02e6
commit 4a8d4f8c3f
201 changed files with 891 additions and 14311 deletions

171
README.md Normal file
View File

@@ -0,0 +1,171 @@
# 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