Development¶
Welcome! Issues and pull requests are accepted in English or Japanese. This section covers the day-to-day developer loop. Higher-level expectations live in CONTRIBUTING.md.
| Page | What you'll find |
|---|---|
| Workflow | GitHub Flow, Conventional Commits, PR review expectations |
| Testing | PHPUnit / PHPStan / PHP-CS-Fixer commands and scope |
At a glance¶
make up # build + start the local stack (app + db + adminer)
make install # composer install inside the container
make qa # cs-check + analyse + test
make shell # bash inside the app container
make help lists every target.
Code style¶
- PSR-12 plus the additions in
.php-cs-fixer.dist.php(short array syntax, ordered imports, single quotes, trailing commas). - PHPStan level 6 for everything in
src/,tests/, and the M1 utility rewrites inutil/. Legacy directories are excluded until they migrate. - Strict types: every new PHP file under
src/andtests/starts withdeclare(strict_types=1);. - No globals: dependency injection via the existing
DIContainerinterface.
Branching¶
Trunk-based with short-lived feature branches:
feat/<topic>— new functionalityfix/<topic>— bug or security fixchore/<topic>— tooling or repo housekeepingdocs/<topic>— documentation only
Open the PR as a draft while work is in progress. Merge happens via squash with a Conventional Commits title.