Skip to content

Contributing

Thank you for your interest in contributing to Phexium!

Repository

Setup

Follow the Contributor Installation guide, then verify:

task tests:all

Workflow

  1. Create a branch from trunk
  2. Make changes following coding standards
  3. Write tests for new functionality
  4. Run quality checks
  5. Submit a merge request

Branch Naming

  • feature/add-book-reservation - New features
  • fix/loan-return-validation - Bug fixes
  • docs/update-installation-guide - Documentation

Quality Checks

task coding-standard:lint    # Check coding standards
task deptrac:analyse         # Architecture validation
task tests:all               # All tests

Coding Standards

  • PHP 8.4+ features (readonly classes, enums, typed properties)
  • PSR-12 coding style
  • No PHPDoc blocks - use native type hints
  • Final classes by default
  • English only for code and documentation

Testing Requirements

All contributions must include tests:

  • Unit tests for domain logic
  • Integration tests for repositories
  • Acceptance tests (Behat) for user-facing features

Merge Request Guidelines

Title Format

  • feat: Add book reservation system
  • fix: Correct loan period validation
  • docs: Update installation instructions

Description

  1. Summary of changes
  2. Related issues (Closes #123)
  3. Testing approach