mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Upgrade project to PHP 8.3, add PHPStan, upgrade almost every dependency (#36)
* start updating to PHP 8.3 * taking off! Co-authored-by: ErickSkrauch <erickskrauch@yandex.ru> Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * dropped this Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * migrate to symfonymailer Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * this is so stupid 😭 Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * ah, free, at last. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * oh, Gabriel. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * now dawns thy reckoning. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * and thy gore shall GLISTEN before the temples of man. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * creature of steel. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * my gratitude upon thee for my freedom. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * but the crimes thy kind has committed against humanity Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * Upgrade PHP-CS-Fixer and do fix the codebase * First review round (maybe I have broken something) * are NOT forgotten. Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> * Enable parallel PHP-CS-Fixer runner * PHPStan level 1 * PHPStan level 2 * PHPStan level 3 * PHPStan level 4 * PHPStan level 5 * Levels 6 and 7 takes too much effort. Generate a baseline and fix them eventually * Resolve TODO's related to the php-mock * Drastically reduce baseline size with the Rector * More code modernization with help of the Rector * Update GitLab CI --------- Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com> Co-authored-by: ErickSkrauch <erickskrauch@yandex.ru>
This commit is contained in:
@@ -12,15 +12,20 @@ use ReflectionClass;
|
||||
|
||||
class ElyDecorator implements DecoratorInterface {
|
||||
|
||||
private const LOGO = __DIR__ . '/resources/logo.svg';
|
||||
private const string LOGO = __DIR__ . '/resources/logo.svg';
|
||||
|
||||
private const CORRECTION_MAP = [
|
||||
private const array CORRECTION_MAP = [
|
||||
ErrorCorrectionLevel::L => 7,
|
||||
ErrorCorrectionLevel::M => 15,
|
||||
ErrorCorrectionLevel::Q => 25,
|
||||
ErrorCorrectionLevel::H => 30,
|
||||
];
|
||||
|
||||
/**
|
||||
* @throws \ImagickException
|
||||
* @throws \ImagickPixelException
|
||||
* @throws \ImagickPixelIteratorException
|
||||
*/
|
||||
public function preProcess(
|
||||
QrCode $qrCode,
|
||||
RendererInterface $renderer,
|
||||
@@ -28,8 +33,8 @@ class ElyDecorator implements DecoratorInterface {
|
||||
$outputHeight,
|
||||
$leftPadding,
|
||||
$topPadding,
|
||||
$multiple
|
||||
) {
|
||||
$multiple,
|
||||
): void {
|
||||
if (!$renderer instanceof Svg) {
|
||||
throw new InvalidArgumentException('$renderer must by instance of ' . Svg::class);
|
||||
}
|
||||
@@ -38,11 +43,11 @@ class ElyDecorator implements DecoratorInterface {
|
||||
$sizeMultiplier = $correctionLevel + floor($correctionLevel / 3);
|
||||
$count = $qrCode->getMatrix()->getWidth();
|
||||
|
||||
$countToRemoveX = floor($count * $sizeMultiplier / 100);
|
||||
$countToRemoveY = floor($count * $sizeMultiplier / 100);
|
||||
$countToRemoveX = (int)floor($count * $sizeMultiplier / 100);
|
||||
$countToRemoveY = (int)floor($count * $sizeMultiplier / 100);
|
||||
|
||||
$startX = $leftPadding + round(($count - $countToRemoveX) / 2 * $multiple);
|
||||
$startY = $topPadding + round(($count - $countToRemoveY) / 2 * $multiple);
|
||||
$startX = (int)($leftPadding + round(($count - $countToRemoveX) / 2 * $multiple));
|
||||
$startY = (int)($topPadding + round(($count - $countToRemoveY) / 2 * $multiple));
|
||||
$width = $countToRemoveX * $multiple;
|
||||
$height = $countToRemoveY * $multiple;
|
||||
|
||||
@@ -52,11 +57,12 @@ class ElyDecorator implements DecoratorInterface {
|
||||
/** @var \SimpleXMLElement $svg */
|
||||
$svg = $property->getValue($renderer);
|
||||
|
||||
/** @var \SimpleXMLElement $image */
|
||||
$image = $svg->addChild('image');
|
||||
$image->addAttribute('x', $startX);
|
||||
$image->addAttribute('y', $startY);
|
||||
$image->addAttribute('width', $width);
|
||||
$image->addAttribute('height', $height);
|
||||
$image->addAttribute('x', (string)$startX);
|
||||
$image->addAttribute('y', (string)$startY);
|
||||
$image->addAttribute('width', (string)$width);
|
||||
$image->addAttribute('height', (string)$height);
|
||||
$image->addAttribute('xlink:href', $this->encodeSvgToBase64(self::LOGO));
|
||||
|
||||
$logo = new Imagick();
|
||||
@@ -89,8 +95,8 @@ class ElyDecorator implements DecoratorInterface {
|
||||
|
||||
for ($i = $x - $padding; $i <= $x + $padding; $i++) {
|
||||
for ($j = $y - $padding; $j <= $y + $padding; $j++) {
|
||||
$matrixX = floor($i / $multiple);
|
||||
$matrixY = floor($j / $multiple);
|
||||
$matrixX = (int)floor($i / $multiple);
|
||||
$matrixY = (int)floor($j / $multiple);
|
||||
$qrCode->getMatrix()->set($matrixX, $matrixY, 0);
|
||||
}
|
||||
}
|
||||
@@ -104,7 +110,7 @@ class ElyDecorator implements DecoratorInterface {
|
||||
$outputHeight,
|
||||
$leftPadding,
|
||||
$topPadding,
|
||||
$multiple
|
||||
$multiple,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user