use Symfony\Component\Routing\RouterInterface;
/**
- * Helps manage map
+ * Manages image
*/
class ImageUtil {
/**
* The captcha width
*/
- const captchaWidth = 192;
+ const width = 192;
/**
* The captcha height
*/
- const captchaHeight = 52;
+ const height = 52;
/**
* The captcha background color
*/
- const captchaBackground = 'white';
+ const background = 'white';
/**
* The captcha fill color
*/
- const captchaFill = '#cff';
+ const fill = '#cff';
/**
* The captcha font size
*/
- const captchaFontSize = 45;
+ const fontSize = 45;
/**
* The captcha stroke color
*/
- const captchaStroke = '#00c3f9';
+ const stroke = '#00c3f9';
/**
* The captcha stroke width
*/
- const captchaStrokeWidth = 2;
+ const strokeWidth = 2;
/**
* The thumb width
*/
const thumbHeight = 640;
- /**
- * The cache path
- */
- protected string $cache;
-
- /**
- * The path
- */
- protected string $path;
-
- /**
- * The RouterInterface instance
- */
- protected RouterInterface $router;
-
- /**
- * The SluggerUtil instance
- */
- protected SluggerUtil $slugger;
-
- //Captcha background
- protected string $captchaBackground;
-
- //Captcha fill
- protected string $captchaFill;
-
- //Captcha font size
- protected int $captchaFontSize;
-
- //Captcha stroke
- protected string $captchaStroke;
-
- //Captcha stroke width
- protected int $captchaStrokeWidth;
-
- /**
- * The captcha background
- */
- public string $captchaBackground;
-
- /**
- * The captcha fill
- */
- public string $captchaFill;
-
- /**
- * The captcha font size
- */
- public int $captchaFontSize;
-
- /**
- * The captcha stroke
- */
- public string $captchaStroke;
-
- /**
- * The captcha stroke width
- */
- public int $captchaStrokeWidth;
-
/**
* Creates a new image util
*
* @param string $path The public path
* @param string $prefix The prefix
*/
- function __construct(RouterInterface $router, SluggerUtil $slugger, string $cache = '../var/cache', string $path = './bundles/rapsyspack', string $prefix = 'image', string $captchaBackground = self::captchaBackground, string $captchaFill = self::captchaFill, int $captchaFontSize = self::captchaFontSize, string $captchaStroke = self::captchaStroke, int $captchaStrokeWidth = self::captchaStrokeWidth) {
- //Set cache
- $this->cache = $cache.'/'.$prefix;
-
- //Set captcha background
- $this->captchaBackground = $captchaBackground;
-
- //Set captcha fill
- $this->captchaFill = $captchaFill;
-
- //Set captcha font size
- $this->captchaFontSize = $captchaFontSize;
-
- //Set captcha stroke
- $this->captchaStroke = $captchaStroke;
-
- //Set captcha stroke width
- $this->captchaStrokeWidth = $captchaStrokeWidth;
-
- //Set path
- $this->path = $path.'/'.$prefix;
-
- //Set router
- $this->router = $router;
-
- //Set slugger
- $this->slugger = $slugger;
+ function __construct(protected RouterInterface $router, protected SluggerUtil $slugger, protected string $cache = '../var/cache', protected string $path = './bundles/rapsyspack', protected string $prefix = 'image', protected string $background = self::background, protected string $fill = self::fill, protected int $fontSize = self::fontSize, protected string $stroke = self::stroke, protected int $strokeWidth = self::strokeWidth) {
}
/**
* @param int $height The height
* @return array The captcha data
*/
- public function getCaptcha(int $updated, int $width = self::captchaWidth, int $height = self::captchaHeight): array {
+ public function getCaptcha(int $updated, int $width = self::width, int $height = self::height): array {
//Set a
$a = rand(0, 9);
'token' => $this->slugger->hash(strval($a * $b + $c)),
'value' => strval($a * $b + $c),
'equation' => str_replace([' ', '*', '+'], ['-', 'mul', 'add'], $equation),
- 'src' => $this->router->generate('rapsys_pack_captcha', ['hash' => $hash, 'updated' => $updated, 'equation' => $short, 'width' => $width, 'height' => $height]),
+ 'src' => $this->router->generate('rapsyspack_captcha', ['hash' => $hash, 'updated' => $updated, 'equation' => $short, 'width' => $width, 'height' => $height]),
'width' => $width,
'height' => $height
];
//Return array
return [
'caption' => $caption,
- 'link' => $this->router->generate('rapsys_pack_thumb', ['hash' => $link, 'updated' => $updated, 'path' => $short, 'width' => $imageWidth, 'height' => $imageHeight]),
- 'src' => $this->router->generate('rapsys_pack_thumb', ['hash' => $src, 'updated' => $updated, 'path' => $short, 'width' => $width, 'height' => $height]),
+ 'link' => $this->router->generate('rapsyspack_thumb', ['hash' => $link, 'updated' => $updated, 'path' => $short, 'width' => $imageWidth, 'height' => $imageHeight]),
+ 'src' => $this->router->generate('rapsyspack_thumb', ['hash' => $src, 'updated' => $updated, 'path' => $short, 'width' => $width, 'height' => $height]),
'width' => $width,
'height' => $height
];
}
+ /**
+ * Get captcha background color
+ */
+ public function getBackground() {
+ return $this->background;
+ }
+
+ /**
+ * Get captcha fill color
+ */
+ public function getFill() {
+ return $this->fill;
+ }
+
+ /**
+ * Get captcha font size
+ */
+ public function getFontSize() {
+ return $this->fontSize;
+ }
+
+ /**
+ * Get captcha stroke color
+ */
+ public function getStroke() {
+ return $this->stroke;
+ }
+
+ /**
+ * Get captcha stroke width
+ */
+ public function getStrokeWidth() {
+ return $this->strokeWidth;
+ }
+
/**
* Remove image
*
$hash = array_reverse(str_split(strval($updated)));
//Set dir
- $dir = $this->path.'/'.$hash[0].'/'.$hash[1].'/'.$hash[2].'/'.$updated.'/'.$this->slugger->short($path);
+ $dir = $this->path.'/'.$this->prefix.'/'.$hash[0].'/'.$hash[1].'/'.$hash[2].'/'.$updated.'/'.$this->slugger->short($path);
//Set removes
$removes = [];