No description
Introduce an injectable abstraction over password_hash and password_verify so callers can be swapped for a fast fake in tests without paying bcrypt's CPU cost. The bcrypt implementation is a direct passthrough using PASSWORD_DEFAULT, matching the prior inline behavior, so existing stored hashes continue to verify. Wired into the DI container alongside the other auth primitives (Clock, TokenGenerator). No callers reference it yet, so production behavior is unchanged. |
||
|---|---|---|
| ai | ||
| app | ||
| bootstrap | ||
| cypress | ||
| data | ||
| public | ||
| tests | ||
| views/templates | ||
| .envrc | ||
| .gitignore | ||
| .php-cs-fixer.dist.php | ||
| composer.json | ||
| composer.lock | ||
| cypress.config.js | ||
| DailyGoals.drawio | ||
| flake.lock | ||
| flake.nix | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Set a goal for finishing a book by a specific date and have your daily goals automatically calculated
TODO
- Test Email Address Value Object
- Move create text out of view controller into text controller