123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- declare(strict_types = 1);
- namespace BaconQrCode\Renderer\RendererStyle;
- use BaconQrCode\Renderer\Eye\EyeInterface;
- use BaconQrCode\Renderer\Eye\ModuleEye;
- use BaconQrCode\Renderer\Module\ModuleInterface;
- use BaconQrCode\Renderer\Module\SquareModule;
- final class RendererStyle
- {
- /**
- * @var int
- */
- private $size;
- /**
- * @var int
- */
- private $margin;
- /**
- * @var ModuleInterface
- */
- private $module;
- /**
- * @var EyeInterface|null
- */
- private $eye;
- /**
- * @var Fill
- */
- private $fill;
- public function __construct(
- int $size,
- int $margin = 4,
- ?ModuleInterface $module = null,
- ?EyeInterface $eye = null,
- ?Fill $fill = null
- ) {
- $this->margin = $margin;
- $this->size = $size;
- $this->module = $module ?: SquareModule::instance();
- $this->eye = $eye ?: new ModuleEye($this->module);
- $this->fill = $fill ?: Fill::default();
- }
- public function withSize(int $size) : self
- {
- $style = clone $this;
- $style->size = $size;
- return $style;
- }
- public function withMargin(int $margin) : self
- {
- $style = clone $this;
- $style->margin = $margin;
- return $style;
- }
- public function getSize() : int
- {
- return $this->size;
- }
- public function getMargin() : int
- {
- return $this->margin;
- }
- public function getModule() : ModuleInterface
- {
- return $this->module;
- }
- public function getEye() : EyeInterface
- {
- return $this->eye;
- }
- public function getFill() : Fill
- {
- return $this->fill;
- }
- }
|