## Open a Pull Request
In order to maintain consistency in the source code we are following PSR12 coding standard, and using PHP stan for static code analysis.
You can use the command:
make allcheck
to launch
- **[PSR-12 Coding Standard](https://www.php-fig.org/psr/psr-12/)**, under the hood is used [PHP Code Sniffer](https://pear.php.net/package/PHP_CodeSniffer);
- **PHPstan** with [level 7](https://phpstan.org/user-guide/rule-levels)
- **Phpunit** to execute all tests from ./tests/*
I suggest to launch *make allcheck* before to commit or before to create PR.
If you want to work on a PR, I suggest you to creating a new branch starting from **master branch**, and use it also when you will submit your new **P**ull **R**equest on the original repository.
If you want to contribute with an high quality PR, I suggest you to focus not just on the source code but also:
- **Add tests!** - Your patch won't be accepted if it doesn't have tests.
- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.
- **Consider our release cycle** - We try to follow [SemVer v2.0.0](https://semver.org/). Randomly breaking public APIs is not an option.
- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.
- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](https://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting.