Move RateLimit cache dir from src/cache/ to storage/cache/rate_limit/

The default cache directory for the file-based rate limiter was
src/cache/rate_limit/, placing transient JSON files inside the source tree.
This meant:
- The directory was deployed via rsync on every deploy (wasted I/O)
- .gitignore had to track a src/-internal path
- Developers running tests could leave stale cache state in the source tree

Changes:
- src/RateLimit.php: default $cacheDir changed from __DIR__.'/cache/rate_limit'
  to dirname(__DIR__).'/storage/cache/rate_limit'; dirname(__DIR__) resolves to
  the project root regardless of how the file is loaded (with or without bootstrap)
- .gitignore: replaced 'src/cache/rate_limit/' with 'storage/cache/' (broader,
  covers any future cache subdirs under storage/)
- storage/cache/.gitkeep: added so the directory is tracked in VCS and created
  on fresh clones/deploys, but its contents are ignored
- justfile: added '--exclude storage/cache/*' to the deploy rsync recipe so
  rate-limit state is never transferred to the server
- src/cache/: removed (no longer needed)

All RateLimit unit tests pass.
This commit is contained in:
Pontoporeia
2026-04-01 16:44:07 +02:00
parent 9108c4069d
commit 8e36f98139
5 changed files with 8 additions and 8 deletions

2
.gitignore vendored
View File

@@ -10,7 +10,7 @@ storage/test.db
### Logs ###
error.log
src/cache/rate_limit/
storage/cache/
# Nix
.direnv/