mirror of
https://github.com/chillerlan/php-qrcode.git
synced 2026-09-04 14:37:36 +00:00
📖
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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! |
|
||||
|
||||
Reference in New Issue
Block a user