- Make sure your code follows the PSR-12 code style and is .editorconfig valid.
You may use
composer run phpcsand Editorconfig-Checker to verify that. - You should use an editorconfig plugin for your editor for automatic basic code formatting.
- Use
usestatements wherever possible instead of writing the fully qualified name. - Code must pass PHPStan checks (
composer phpstan) - Order the composer/npm dependencies alphabetically.
- Do not use code from the includes directory anywhere else.
- Don't refactor includes code just for the sake of change, it is legacy code that must only be replaced.
- Please cover your code by unit tests, our goal is to stay at 100% line coverage.
Code under
includesdoes not require tests as it's mostly not testable and needs to be rewritten. - Do not use vendor prefixes like
-webkitin styles. This is done by PostCSS + Autoprefixer according to the.browserslistrc. - Translations must be abbreviated, for example
form.save. Thedefault.pofiles contain translations that can be auto-detected using Poedit,additional.pocontains generated messages like validations. - JavaScript code must pass the checks
yarn lint. Auto-fixing is supported viayarn lint:fix. - Don't put function calls in a template-literal (template-strings).
- The PR should contain a short overview of the changes.
- Before implementing bigger changes, please open an issue to discuss the feature and possible implementation options.
- Please create single pull requests for every feature instead of creating one big monster of pull request containing a complete rewrite.
- Squash similar commits to make the review easier.
- For visual changes, include both before and after screenshots to easily compare and discuss changes.
- The commit message must be meaningful. It should serve as a short overview of the changes. If needed, an additional description can be provided.
- A commit should be self-contained and result in a working Engelsystem.