mirror of
https://github.com/itflow-org/itflow
synced 2026-06-03 16:48:20 +00:00
50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
# stripe-php
|
|
|
|
## Testing
|
|
|
|
- Run all tests: `just test`
|
|
- Run specific test: `just test --filter testMethodName`
|
|
- Run specific test file: `just test tests/Stripe/SomeTest.php`
|
|
- Tests use PHPUnit
|
|
|
|
## Formatting & Linting
|
|
|
|
- Format: `just format` (uses php-cs-fixer)
|
|
- Lint/static analysis: `just lint` (uses PHPStan)
|
|
|
|
## Key Locations
|
|
|
|
- HTTP client interface: `lib/HttpClient/ClientInterface.php`
|
|
- cURL HTTP implementation: `lib/HttpClient/CurlClient.php`
|
|
- Streaming client interface: `lib/HttpClient/StreamingClientInterface.php`
|
|
- Base client (request building, auth): `lib/BaseStripeClient.php`
|
|
- Main client class: `lib/StripeClient.php`
|
|
- Version/config: `lib/Stripe.php`
|
|
|
|
## Generated Code
|
|
|
|
- Files containing `File generated from our OpenAPI spec` at the top are generated; do not edit. Similarly, any code block starting with `The beginning of the section generated from our OpenAPI spec` is generated and should not be edited directly.
|
|
- If something in a generated file/range needs to be updated, add a summary of the change to your report but don't attempt to edit it directly.
|
|
- Resource classes under `lib/` (e.g. `lib/Customer.php`, `lib/Service/`) are largely generated.
|
|
- The `HttpClient/` directory and `BaseStripeClient.php` are NOT generated.
|
|
|
|
## Conventions
|
|
|
|
- Uses PHP cURL extension for HTTP
|
|
- Composer for dependency management
|
|
- Vendored executables in `vendor/bin/`
|
|
- Work is not complete until `just test` and `just lint` complete successfully.
|
|
- All code must run on all supported PHP versions (full list in the test section of @.github/workflows/ci.yml)
|
|
|
|
### Comments
|
|
|
|
- Comments MUST only be used to:
|
|
1. Document a function
|
|
2. Explain the WHY of a piece of code
|
|
3. Explain a particularly complicated piece of code
|
|
- Comments NEVER should be used to:
|
|
1. Say what used to be there. That's no longer relevant!
|
|
2. Explain the WHAT of a piece of code (unless it's very non-obvious)
|
|
|
|
It's ok not to put comments on/in a function if their addition wouldn't meaningfully clarify anything.
|