d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
---
|
|
paths:
|
|
- "**/*.php"
|
|
- "**/composer.json"
|
|
---
|
|
# PHP Coding Style
|
|
|
|
> This file extends [common/coding-style.md](../common/coding-style.md) with PHP specific content.
|
|
|
|
## Standards
|
|
|
|
- Follow **PSR-12** formatting and naming conventions.
|
|
- Prefer `declare(strict_types=1);` in application code.
|
|
- Use scalar type hints, return types, and typed properties everywhere new code permits.
|
|
|
|
## Immutability
|
|
|
|
- Prefer immutable DTOs and value objects for data crossing service boundaries.
|
|
- Use `readonly` properties or immutable constructors for request/response payloads where possible.
|
|
- Keep arrays for simple maps; promote business-critical structures into explicit classes.
|
|
|
|
## Formatting
|
|
|
|
- Use **PHP-CS-Fixer** or **Laravel Pint** for formatting.
|
|
- Use **PHPStan** or **Psalm** for static analysis.
|
|
- Keep Composer scripts checked in so the same commands run locally and in CI.
|
|
|
|
## Imports
|
|
|
|
- Add `use` statements for all referenced classes, interfaces, and traits.
|
|
- Avoid relying on the global namespace unless the project explicitly prefers fully qualified names.
|
|
|
|
## Error Handling
|
|
|
|
- Throw exceptions for exceptional states; avoid returning `false`/`null` as hidden error channels in new code.
|
|
- Convert framework/request input into validated DTOs before it reaches domain logic.
|
|
|
|
## Reference
|
|
|
|
See skill: `backend-patterns` for broader service/repository layering guidance.
|