Contributions are welcome. This project accepts pull requests on GitHub.
This project adheres to a code of conduct. By participating in this project and its community, you are expected to uphold this code.
You can find help and discussion in the following places:
Report bugs using the project's issue tracker.
⚠️ ATTENTION!!! DO NOT include passwords or other sensitive information in your bug report.
When submitting a bug report, please include enough information to reproduce the bug. A good bug report includes the following sections:
Provide a short and clear description of the bug.
Provide steps to reproduce the behavior you are experiencing. Please try to keep this as short as possible. If able, create a reproducible script outside of any framework you are using. This will help us to quickly debug the issue.
Provide a short and clear description of what you expect to happen.
If applicable, add screenshots or program output to help explain your problem.
Provide details about the system where you're using this package, such as PHP version and operating system.
Provide any additional context that may help us debug the problem.
This project welcomes pull requests to fix bugs!
If you see a bug report that you'd like to fix, please feel free to do so. Following the directions and guidelines described in the "Adding New Features" section below, you may create bugfix branches and send pull requests.
If you have an idea for a new feature, it's a good idea to check out the issues or active pull requests first to see if anyone is already working on the feature. If not, feel free to submit an issue first, asking whether the feature is beneficial to the project. This will save you from doing a lot of development work only to have your feature rejected. We don't enjoy rejecting your hard work, but some features don't fit with the goals of the project.
When you do begin working on your feature, here are some guidelines to consider:
composer phpcs
to check.composer test
.To develop this project, you will need PHP 7.4 or greater and Composer.
After cloning this repository locally, execute the following commands:
cd /path/to/repository
composer install
Now, you are ready to develop!
This project uses CaptainHook to validate all staged changes prior to commit.
To see all the commands available for contributing to this project:
composer list
This project follows a superset of PSR-12 coding standards, enforced by PHP_CodeSniffer.
CaptainHook will run coding standards checks before committing.
You may lint the codebase manually using the following commands:
# Lint
composer phpcs
# Attempt to auto-fix coding standards issues
composer phpcbf
This project uses a combination of PHPStan and Psalm to provide static analysis of PHP code.
CaptainHook will run static analysis checks before committing.
You may run static analysis manually across the whole codebase with the following command:
# Static analysis
composer analyze
This project uses pds/skeleton as its base folder structure and layout.
The following must pass before we will accept a pull request. If this does not
pass, it will result in a complete build failure. Before you can run this, be
sure to composer install
.
To run all the tests and coding standards checks, execute the following from the command line, while in the project root directory:
composer test
CaptainHook will automatically run all tests before pushing to the remote repository.