Thank you for your interest in contributing to php-aegis!
- PHP 8.1 or higher
- Composer
- Git
# Clone the repository
git clone https://github.com/hyperpolymath/php-aegis.git
cd php-aegis
# Install dependencies
composer install
# Run tests to verify setup
vendor/bin/phpunit- Check existing issues to avoid duplicates
- Create a new issue with:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- PHP version and environment details
- Open a new issue with the
enhancementlabel - Describe the use case and security benefit
- Include example API if proposing new methods
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Write tests for new functionality
- Ensure all tests pass:
vendor/bin/phpunit - Run static analysis:
vendor/bin/phpstan analyse src - Submit a pull request
This project follows PSR-12 coding standards.
# Check formatting
vendor/bin/php-cs-fixer fix --dry-run
# Auto-fix formatting
vendor/bin/php-cs-fixer fix- All public methods must have PHPDoc comments
- Include
@paramand@returnannotations - Document security considerations where relevant
- New features require tests
- Security-related code requires comprehensive test coverage
- Use meaningful test method names:
test_validator_rejects_invalid_email()
Given the security-focused nature of this project:
- Do not submit PRs that fix security vulnerabilities publicly
- Instead, follow the process in SECURITY.md
- Security enhancements (new features) can be submitted normally
By contributing, you agree that your contributions will be licensed under the MIT License.