composer install
cd public && php -S localhost:8080
Нотатка
писав щоб application був трохи схожий на laravel
- регістрація роутів (
src/routes/web.php
) - обробка контроллерів (
src/controllers/*
) - Логування в application
- Обробка мідлварів
Використовував psr інтерфейси а саме
localhost:8080/
(GET) - вивід просто тексту на головній сторінціlocalhost:8080/users
(GET) - вивід всіх користувачівlocalhost:8080/users/{id}
(GET) - вивід конктетного користувача (тут додав AuthUserMiddleware шоб перевірити доступ до роуту токену )
Приклад запиту на /users/{id}
curl --location 'http://localhost:8080/users/1' \
--header 'Authorization: Token dXNlcjFAZ21haS5jb206JDJ5JDEwJHlad1dNdC96MVYxaFcxYmQ4VHlpZGVCcHZzUTQweGF5TUVwYzNSbDMvL0NhaXZ0cGxEQXdX'
Токен в собі містить base_64 зашифровану строку яка містить email:passwordlHash
(думаю що це не секьюрно , але треба було по чомусь перевіряти)
localhost:8080/login
(POST) - отриманя токена
Приклад запиту (User має зашифрований пароль 'secret' для всіх користувачів)
curl --location 'http://localhost:8080/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "user1@gmai.com",
"password": "secret"
}'
Лог дані записуються у файл logs/logger.log
core/Log/Log::info(\Stringable|string $message, array $context = [])
- інформаційний логcore/Log/Log::error(\Exception $exception)
- лог про помилку
Не застосовував бази даних або інші сховища.
Використовував як звичайний массив з даними в середині.
Щоб вибрати дані визиваємо наступний класс
src/Repository/UserRepository.php
Можна застосовуючи в інших методах за допомогою Dependency Injection
public function __construct(
private readonly UserRepository $userRepository = new UserRepository()
) {
}