Пример для курса "Базы данных", сделан на PHP8 и MySQL8, проверен на Linux.
В понимании примера могут помочь следующие материалы:
- MySQL 8.0 Reference Manual :: 13.2.20 WITH (Common Table Expressions)
- Часть 1. Иерархические структуры данных и Doctrine
- Установить docker и docker-compose
- Запустить контейнеры по инструкции из файла
docs/docker.md
- Открыть в MySQL Workbench и выполнить последовательно SQL запросы из файлов
data/init_schema.sql
data/nested_set_routines.sql
- Открыть сессию Bash в контейнере командой
docker/bin/tree-of-life-app-bash
- Запустить
vendor/bin/phpunit
Краткий план действий:
- Установить MySQL 8 и PHP 8.2
- Запустить MySQL server
- Открыть в MySQL Workbench и выполнить последовательно SQL запросы из двух файлов:
data/create_database_and_user.sql
data/init_schema.sql
data/nested_set_routines.sql
- Запустить
vendor/bin/phpunit
-- Запуск только тестов в классах, содержащих в названии AdjacencyList
vendor/bin/phpunit --filter AdjacencyList
-- Запуск только тестов в классах, содержащих в названии NestedSet
vendor/bin/phpunit --filter NestedSet