Contribute

No permission required

Every repository accepts contributions under the same rules. Read them once and they apply everywhere.

Before you start

  • PHP 8.4 or newer, with Composer.
  • An issue describing what you intend to change, or an existing one to claim.
  • Agreement with the manifesto — it is a constraint, not a suggestion.

The flow

  1. Fork the repository and create a branch from the default branch.
  2. Write the failing test first, then the smallest change that makes it pass.
  3. Run the test suite and the static analysis configured in the repository.
  4. Open a pull request that explains the why, not only the what.

The rules that are not negotiable

  • One level of indentation per method.
  • No else.
  • Primitives wrapped in value objects.
  • Collections as first class objects.
  • One dot per line.
  • No abbreviations.
  • Small entities: 50 lines per class, 10 files per package.
  • At most two instance variables per class.
  • No getters, setters or public properties.

Where your change belongs

If you are adding generic behaviour, it belongs in an atom. If you are wiring atoms together, it belongs in an assembly. Only business rules belong in an application. A pull request that puts framework code inside a domain layer will be rejected regardless of the tests.

Code of conduct

Be precise, be generous, attack the code and never the person. The full text is in thecode of conduct.