18 lines
2.1 KiB
Markdown
18 lines
2.1 KiB
Markdown
---
|
||
name: feedback-auth-api-naming
|
||
description: Auth API ориентируется на Kohana Auth (login/logout/loggedIn/getUser/checkPassword, Auth::instance()) — без слова Provider
|
||
metadata:
|
||
type: feedback
|
||
---
|
||
|
||
Пользователь знаком с Kohana-подобным Auth-модулем и мыслит его терминами. При работе с `Services\Auth` (и любым похожим кодом в этом проекте) — придерживаться этой семантики, а не изобретать свою.
|
||
|
||
**Why:** Изначально я сделал `Services\Auth::provider()` + интерфейс `AuthProvider` — пользователь не понял слово «provider» и explicitно попросил «убери Provider он меня бесит». Показал референс — конфиг и методы Kohana Auth (`driver`, `login`, `logout`, `check_password`, `get_user`, `logged_in`). После переименования — доволен.
|
||
|
||
**How to apply:** Итоговая договорённость:
|
||
- `Services\Auth::instance(?string $name = null)` — точка входа (как `Auth::instance()` в Kohana), НЕ `provider()`/`getProvider()`.
|
||
- Интерфейс — `Services\Auth\AuthDriver` (не `AuthProvider`), реализация по умолчанию — `FileAuthDriver`.
|
||
- Методы (camelCase, как везде в проекте — не snake_case, как в самой Kohana): `login($login, $password)`, `logout()`, `loggedIn()`, `getUser()`, `checkPassword($password)`.
|
||
- Слово «provider» в новом коде авторизации не использовать вообще — ни в именах классов/методов, ни в комментариях.
|
||
- User — не отдельный класс, а обычный `?array` из `getUser()` (осознанное решение: разные бэкенды/драйверы отдают разный набор полей, жёсткий класс был бы либо слишком узким, либо резиновым __get-обёрткой).
|