Контест Junior PHP 8.x: enum, readonly, match обновлено
Маршрутизация через match
Условие
Реализуйте маршрутизатор. Путь делится на сегменты по /, пустые сегменты игнорируются. Маршруты:
GET /→home;GET /users→users.index,POST /users→users.store;GET|PUT|DELETE /users/{id}→users.show|users.update|users.destroy id=ID, где id это положительное число без ведущих нулей;GET /posts/{slug}→posts.show slug=SLUG.
Если путь подходит под какой-то маршрут, но метод нет, выведите 405. Иначе 404.
Ввод: n (n ≤ 10⁴), затем строки METHOD path.
Пример
6
GET /
GET /users/42
DELETE /users/7
POST /users/7
GET /posts/hello-world
GET /admin
home
users.show id=42
users.destroy id=7
405
posts.show slug=hello-world
404
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.