## Тестовое задание ФХР - OS: Linux, AltLinux 11 - Editor: PhpStorm, MS Code - AI Helper: gemini ## Установка и запуск Окружения у меня небыло настроено никакого, так что все настроено почти с нуля. У меня была готовая сборка MySQL, старая типовая сборка compose.yaml под Laravel и на этом наверное все. **Время: 1 час 25 минут.** For Linux env: ```bash mkdir ilya_test cd ilya_test git clone https://gitea.wired-mind.ru/ijin82/test-FHR.git . cp main-repo/.env.example main-repo/.env docker compose up ``` Алиасы для комфортного подключения `vim ~/.bashrc` ```bash ### Test FHR alias fhr-mysql='docker exec -it mysql_fhr /bin/bash' alias fhr-nginx='docker exec -it nginx_fhr /bin/bash' alias fhr-redis='docker exec -it redis_fhr /bin/sh' alias fhr-php='docker exec -u www-data:www-data -it php8_fhr /bin/bash' ``` ### Написать сортировку для массива числовых данных от 200 тысяч элементов Запуск теста ```bash fhr-php php artisan app:test-fhr-sort ``` Не буду врать что я всегда знаю какую сортировку лучше всего использовать. В таких специальных случаях, когда нужно оперировать с большими массивами данных - конечно решение гуглится, делаются какие-то тесты, опрашиваются коллеги которые потенциально имели опыт с решением подобных задач. Конечно это решение я в голове не носил, а достал его из гугла. **Время: 25 минут.** ### Игроки и клубы, миграции, сидирование, выгрузка ```bash fhr-php php artisan migrate # Структура БД # Клубы php artisan db:seed --class=ClubSeeder # Игроки php artisan db:seed --class=PlayerSeeder ``` Выгрузка данных по игрокам и клубам вместе со структурой ```bash cd /var/lib/mysql-files mysqldump -u root -psecret test_fhr clubs players > clubs_and_players_dump.sql ``` После такой выгрузки, дамп появится в папке MySQL-files Тестовый дамп лежит в корне проекта **clubs_and_players_dump.sql** **Время: 1 час 25 минут.** ### Выгрузка БД пользователей, более 500к+ строк Сидируем БД ```bash # Долгий сид достаточно, минут 15-20 возможно php artisan db:seed --class=UserSeeder ``` Дальше открываем главную страницу http://test-fhr.ldev/ Хост **test-fhr.ldev** нужно будет прописать в hosts в зависимости от вашей ОС. **Время: 2 часа 30 минут.**