Thank you for your interest in contributing to the Klime PHP SDK!
This repository is a read-only mirror of our internal monorepo. We develop and maintain the SDK internally, then mirror releases to this public repository.
- Pull requests are welcome and will be reviewed by our team
- If accepted, we'll manually port your changes to our internal monorepo
- Your changes will appear in this repository with the next release
- You'll be credited as a co-author in the commit
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- A clear, descriptive title
- Steps to reproduce the bug
- Expected vs actual behavior
- Your environment (PHP version, OS, etc.)
- Any relevant code snippets or error messages
- Check if the feature has already been suggested in Issues
- Create a new issue describing:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
- Fork this repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Make your changes
- Write or update tests as needed
- Ensure all tests pass (
composer test) - Commit using Conventional Commits:
feat: add new tracking method fix: handle edge case in batch processing docs: update README examples - Push to your fork and open a Pull Request
- Provide a clear description of what the PR does
- Reference any related issues
- Include tests for new functionality
- Update documentation if needed
- Keep PRs focused - one feature or fix per PR
# Clone your fork
git clone https://github.com/YOUR_USERNAME/klime-php.git
cd klime-php
# Install dependencies
composer install
# Run tests
composer test
# Or run PHPUnit directly
vendor/bin/phpunit --testdoxklime-php/
├── src/
│ ├── Client.php # Main client implementation
│ ├── Event.php # Event class
│ ├── EventType.php # Event type constants
│ ├── EventContext.php # Event context
│ ├── LibraryInfo.php # Library info
│ ├── BatchResponse.php # API response
│ ├── ValidationError.php # Validation error
│ └── ConfigurationException.php
├── tests/
│ ├── ClientTest.php
│ ├── EventTest.php
│ └── ...
├── composer.json
├── phpunit.xml
└── README.md
- Follow PSR-12 coding standard
- Use strict types (
declare(strict_types=1)) - Add PHPDoc comments for public methods
- Use type hints for all parameters and return types
- Keep methods small and focused
# Run all tests
composer test
# Run with verbose output
vendor/bin/phpunit --testdox
# Run specific test file
vendor/bin/phpunit tests/EventTest.php
# Run specific test method
vendor/bin/phpunit --filter testGeneratesUuidIf you have questions about contributing, feel free to open an issue and we'll be happy to help!
By contributing, you agree that your contributions will be licensed under the MIT License.