Skip to content

Commit 5ddd379

Browse files
committed
docs: improve README with credits, performance, requirements, mask option
1 parent 2cd874d commit 5ddd379

1 file changed

Lines changed: 26 additions & 2 deletions

File tree

README.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,16 @@ Zero-dependency QR Code generator for PHP 7.4–9.0.
1313
- PHP 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 8.5 / 9.0
1414
- QR Code versions 1–40, all error correction levels
1515
- Multiple output formats: SVG, PNG, HTML, ASCII, raw matrix
16-
- 100% test coverage
17-
- PHPStan level max
16+
- ~100% test coverage (186 tests, 2209 assertions)
17+
- PHPStan level max, zero errors
18+
- 17x faster with fixed mask pattern
1819
- PSR-4 autoloading
1920

21+
## Requirements
22+
23+
- PHP >= 7.4
24+
- ext-gd (optional, only for PNG rendering)
25+
2026
## Installation
2127

2228
```bash
@@ -54,11 +60,24 @@ $svg = QRCode::svg('data', [
5460
'level' => ErrorCorrectionLevel::H,
5561
'size' => 4,
5662
'margin' => 2,
63+
'mask' => 3, // fixed mask 0-7 (skips auto-selection, 17x faster)
5764
'foreground' => '#000000',
5865
'background' => '#ffffff',
5966
]);
6067
```
6168

69+
## Performance
70+
71+
By default the encoder tests all 8 mask patterns to find the optimal one. For batch generation or when speed matters, pass a fixed `mask` (0–7):
72+
73+
```php
74+
// ~180ms per QR (auto mask selection)
75+
$svg = QRCode::svg($data);
76+
77+
// ~11ms per QR (fixed mask, 17x faster)
78+
$svg = QRCode::svg($data, ['mask' => 0]);
79+
```
80+
6281
## Object API
6382

6483
```php
@@ -90,6 +109,11 @@ $matrix = $qr->getMatrix();
90109
| PngRenderer | ext-gd | PNG binary |
91110
| RawRenderer | none | JSON / int[][] |
92111

112+
## Credits
113+
114+
Inspired by the original [QRCode for PHP](http://www.d-project.com/) by **Kazuhiko Arase** (2009).
115+
Rewritten from scratch with modern PHP practices, strict typing, full test coverage, and zero deprecations.
116+
93117
## License
94118

95119
MIT — see [LICENSE](LICENSE).

0 commit comments

Comments
 (0)