diff options
author | Chih-Hsuan Yen <[email protected]> | 2022-07-02 22:01:51 +0800 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-07-12 22:23:48 +0300 |
commit | 4b6161892000cb2b8392dce92a9cf2cabdf2d20e (patch) | |
tree | 5cad602010e4d13e1a48d6b922d4768c0893ac8b /vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php | |
parent | d9861038bcc3cb2f38c7153bdca7d5ab89597afa (diff) |
Update php-qrcode and php-settings-container for PHP 8.1
By running the following command after updating composer.json
```
composer update chillerlan/php-qrcode chillerlan/php-settings-container
```
This change fixes a deprecation warning from Preferences ->
Personal data / Authentication -> Authenticator (OTP).
```
Return type of chillerlan\Settings\SettingsContainerAbstract::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
1. vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php(19): ttrss_error_handler(Return type of chillerlan\Settings\SettingsContainerAbstract::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice, vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php)
2. vendor/composer/ClassLoader.php(571): include(/usr/share/webapps/tt-rss/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php)
3. vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile(/usr/share/webapps/tt-rss/vendor/composer/../chillerlan/php-settings-container/src/SettingsContainerAbstract.php)
4. vendor/chillerlan/php-qrcode/src/QROptions.php(59): loadClass(chillerlan\Settings\SettingsContainerAbstract)
5. vendor/composer/ClassLoader.php(571): include(/usr/share/webapps/tt-rss/vendor/chillerlan/php-qrcode/src/QROptions.php)
6. vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile(/usr/share/webapps/tt-rss/vendor/composer/../chillerlan/php-qrcode/src/QROptions.php)
7. vendor/chillerlan/php-qrcode/src/QRCode.php(113): loadClass(chillerlan\QRCode\QROptions)
8. classes/pref/prefs.php(958): __construct()
9. classes/pref/prefs.php(469): _get_otp_qrcode_img()
10. classes/pref/prefs.php(541): index_auth_2fa()
11. backend.php(136): index_auth()
```
The issue is fixed in php-settings-container 2.1.1 [1] Here I use the
latest php-qrcode version for another PHP 8.1 fix [2].
[1] https://github.com/chillerlan/php-settings-container/commit/68bc5019c8b38956c83906431ef879668366b036#diff-359c7f7a6d32d9935951e1b0742eb116fb654f4a932c8d40328bb5dcab2fa111L162
[2] https://github.com/chillerlan/php-qrcode/issues/97
Diffstat (limited to 'vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php')
-rw-r--r-- | vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php b/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php index 4ec47de24..d4ed3d0c9 100644 --- a/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php +++ b/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php @@ -15,7 +15,7 @@ namespace chillerlan\QRCode\Output; use chillerlan\QRCode\{Data\QRMatrix, QRCode}; use chillerlan\Settings\SettingsContainerInterface; -use function call_user_func, dirname, file_put_contents, get_called_class, in_array, is_writable, sprintf; +use function call_user_func_array, dirname, file_put_contents, get_called_class, in_array, is_writable, sprintf; /** * common output abstract @@ -23,50 +23,53 @@ use function call_user_func, dirname, file_put_contents, get_called_class, in_ar abstract class QROutputAbstract implements QROutputInterface{ /** - * @var int + * the current size of the QR matrix + * + * @see \chillerlan\QRCode\Data\QRMatrix::size() */ - protected $moduleCount; + protected int $moduleCount; /** - * @param \chillerlan\QRCode\Data\QRMatrix $matrix + * the current output mode + * + * @see \chillerlan\QRCode\QROptions::$outputType */ - protected $matrix; + protected string $outputMode; /** - * @var \chillerlan\QRCode\QROptions + * the default output mode of the current output module */ - protected $options; + protected string $defaultMode; /** - * @var string + * the current scaling for a QR pixel + * + * @see \chillerlan\QRCode\QROptions::$scale */ - protected $outputMode; + protected int $scale; /** - * @var string; + * the side length of the QR image (modules * scale) */ - protected $defaultMode; + protected int $length; /** - * @var int + * an (optional) array of color values for the several QR matrix parts */ - protected $scale; + protected array $moduleValues; /** - * @var int + * the (filled) data matrix object */ - protected $length; + protected QRMatrix $matrix; /** - * @var array + * @var \chillerlan\Settings\SettingsContainerInterface|\chillerlan\QRCode\QROptions */ - protected $moduleValues; + protected SettingsContainerInterface $options; /** * QROutputAbstract constructor. - * - * @param \chillerlan\Settings\SettingsContainerInterface $options - * @param \chillerlan\QRCode\Data\QRMatrix $matrix */ public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){ $this->options = $options; @@ -86,8 +89,6 @@ abstract class QROutputAbstract implements QROutputInterface{ /** * Sets the initial module values (clean-up & defaults) - * - * @return void */ abstract protected function setModuleValues():void; @@ -97,10 +98,6 @@ abstract class QROutputAbstract implements QROutputInterface{ * @see file_put_contents() * @see \chillerlan\QRCode\QROptions::cachefile * - * @param string $data - * @param string $file - * - * @return bool * @throws \chillerlan\QRCode\Output\QRCodeOutputException */ protected function saveToFile(string $data, string $file):bool{ @@ -116,9 +113,11 @@ abstract class QROutputAbstract implements QROutputInterface{ * @inheritDoc */ public function dump(string $file = null){ - // call the built-in output method - $data = call_user_func([$this, $this->outputMode ?? $this->defaultMode]); - $file = $file ?? $this->options->cachefile; + $file ??= $this->options->cachefile; + + // call the built-in output method with the optional file path as parameter + // to make the called method aware if a cache file was given + $data = call_user_func_array([$this, $this->outputMode ?? $this->defaultMode], [$file]); if($file !== null){ $this->saveToFile($data, $file); |