AJAX Filter

Source Code PHP JavaScript MariaDB Docker CI Software License

AJAX Filter — каталог товаров с AJAX-фильтрацией на чистом PHP

Выберите язык

Русский 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 — так его будет проще найти другим разработчикам.
🤘