AJAX Filter
Выберите язык
| Русский | English | Español | 中文 | Français | Deutsch |
|---|---|---|---|---|---|
| Выбран | English | Español | 中文 | Français | Deutsch |
AJAX Filter — небольшой PHP-каталог, в котором товары фильтруются по категории, цвету и весу без перезагрузки страницы. Это компактный пример связки PHP, PDO, MariaDB и нативного JavaScript — без Composer и frontend-библиотек.
Возможности
- Фильтрация товаров по категории, цвету и весу через
fetch()без перезагрузки страницы. - Сохранение выбранных фильтров в PHP-сессии.
- Асинхронный сброс всех активных фильтров.
- Два режима базы данных: пустая схема и демонстрационные данные.
- Локальный Docker-стек с Nginx, PHP-FPM, MariaDB и Xdebug.
Быстрый старт
Нужны Git, Docker с Compose v2 и make.
| Шаг | Команда | Назначение |
|---|---|---|
| 1 | git clone https://github.com/yaleksandr89/filter-ajax.git |
Клонировать репозиторий. |
| 2 | cd filter-ajax |
Перейти в каталог проекта. |
| 3 | make build |
Собрать локальные Docker-образы. |
| 4 | make up |
Запустить стек и дождаться готовности сервисов. |
Откройте http://127.0.0.1:8080. По умолчанию запускается DB_MODE=demo; для пустой схемы используйте make up DB_MODE=schema на новом томе. Подробности о томах, настройке и диагностике — в руководстве по разработке.
Архитектура и структура проекта
С устройством приложения, потоком запросов и работой с фильтрами, сессией, PDO и шаблонами можно познакомиться в отдельном описании архитектуры.
Проверки
Основные проверки собраны в Makefile:
| Проверка | Команда |
|---|---|
| Итоговая Compose-конфигурация | make config |
| Регрессионные PHP-тесты | make php CMD="tests/run.php" |
| Runtime smoke уже запущенного стека | make smoke |
CI для push и pull request в master проверяет PHP и JavaScript, регрессионные тесты, Docker-конфигурацию и оба режима базы.
Что намеренно оставлено простым
- Нет PHP-фреймворка и ORM.
- Нет Composer-пакетов.
- Нет JavaScript-зависимостей и frontend-фреймворка.
- Нет отдельного API-слоя.
Цель проекта — показать небольшой законченный поток фильтрации на базовых возможностях PHP, PDO и нативного JavaScript.
Обратная связь
- Воспроизводимые ошибки — GitHub Issues.
- Вопросы и идеи — GitHub Discussions.
Если проект оказался полезен, поставьте звезду на GitHub — так его будет проще найти другим разработчикам.
