This commit is contained in:
smiley
2025-10-29 21:30:23 +01:00
parent e5e9009aab
commit 7448525638
3 changed files with 18 additions and 6 deletions
+7 -2
View File
@@ -197,7 +197,8 @@ class MyOutput extends QROutputAbstract{
### `collectModules()`
The module collector is particularly useful for plain text based file formats, for example the various markup languages like SVG and HTML or other structured file formats such as EPS.
This method takes a `Closure` as a parameter, which is called with 4 parameters: the module coordinates `$x` and `$y`, the `$M_TYPE` and `$M_TYPE_LAYER`.
This method calls a method `moduleTransform()` internally with 4 parameters: the module coordinates `$x` and `$y`, the `$M_TYPE` and `$M_TYPE_LAYER`.
The transform method should return a value that is valid for a single module of the QR matrix, or `null` if no transform was performed for the current module.
The `$M_TYPE_LAYER` is a copy of the `$M_TYPE` that represents the array key of the returned array and that may have been reassigned in the collector to another path layer, e.g. through `QROptions::$connectPaths`.
```php
@@ -206,7 +207,7 @@ class MyOutput extends QROutputAbstract{
public function dump(string $file = null):string{
// collect the modules for the path elements
$paths = $this->collectModules(fn(int $x, int $y, int $M_TYPE):string => sprintf('%d %d %012b', $x, $y, $M_TYPE));
$paths = $this->collectModules();
// loop over the paths
foreach($paths as $M_TYPE_LAYER => &$path){
@@ -221,6 +222,10 @@ class MyOutput extends QROutputAbstract{
return implode($this->options->eol, $paths);
}
protected function moduleTransform(int $x, int $y, int $M_TYPE, int $M_TYPE_LAYER):string{
return sprintf('%d %d %012b', $x, $y, $M_TYPE);
}
}
```
+6
View File
@@ -38,6 +38,12 @@ You can also set an `iterable` of options on an existing QROptions instance:
$options->fromIterable($myOptions);
```
In addition to that, you can also supply the `iterable` of option values directly to the `QRCode` constructor (v6+):
```php
$qrCode = new QRCode($myOptions);
```
### Load and save options from/to JSON
+5 -4
View File
@@ -12,7 +12,7 @@ Installation via [`composer.json`](https://getcomposer.org/doc/04-schema.md):
```json
{
"require": {
"php": "^7.4",
"php": "^8.2",
"chillerlan/php-qrcode": "dev-main"
}
}
@@ -63,7 +63,7 @@ After that, run `composer install` in the package root directory to install the
Profit!
### Can i use this library without using composer?
### Can I use this library without using composer?
You can, but it's absolutely not recommended, nor supported.
@@ -82,8 +82,9 @@ The PHP built-in extensions [GdImage](https://www.php.net/manual/book.image.php)
| version | branch/tag | PHP | supported | required extensions | optional extensions | info |
|---------|----------------------------------------------------------------------|------------------|-----------|---------------------|------------------------------------------------------------------------------------|---------------------------|
| **v5** | [`dev-main`](https://github.com/chillerlan/php-qrcode/tree/main) | `^7.4 \|\| ^8.0` | yes | `mbstring` | `gd` or `imagick` required for reading QR Codes, `fileinfo` is used in `QRImagick` | |
| **v4** | [`4.3.4`](https://github.com/chillerlan/php-qrcode/tree/v4.3.x) | `^7.4 \|\| ^8.0` | yes | `gd`, `mbstring` | `imagick` | |
| **v6** | [`dev-main`](https://github.com/chillerlan/php-qrcode/tree/main) | `^8.2` | yes | `mbstring` | `gd` or `imagick` required for reading QR Codes, `fileinfo` is used in `QRImagick` | |
| **v5** | [`5.0.5`](https://github.com/chillerlan/php-qrcode/tree/v5.0.x) | `^7.4 \|\| ^8.0` | yes | `mbstring` | `gd` or `imagick` required for reading QR Codes, `fileinfo` is used in `QRImagick` | |
| **v4** | [`4.3.4`](https://github.com/chillerlan/php-qrcode/tree/v4.3.x) | `^7.4 \|\| ^8.0` | no | `gd`, `mbstring` | `imagick` | |
| **v3** | [`3.4.1`](https://github.com/chillerlan/php-qrcode/tree/v3.2.x) | `^7.2` | no | `gd`, `mbstring` | `imagick` | v3.4.1 also supports PHP8 |
| **v2** | [`2.0.8`](https://github.com/chillerlan/php-qrcode/tree/v2.0.x) | `>=7.0.3` | no | `gd`, `mbstring` | | |
| **v1** | [`1.0.9`](https://github.com/chillerlan/php-qrcode/tree/v2.0.x-php5) | `>=5.6` | no | `gd`, `mbstring` | | please let PHP 5 die! |