width <= 0) { throw new CaptchaException('Incorrect $width settings.'); } if ($this->height <= 0) { throw new CaptchaException('Incorrect $height settings.'); } if ($this->textPaddingTop < 0) { throw new CaptchaException('Incorrect $textPaddingTop settings.'); } if ($this->textPaddingLeft < 0) { throw new CaptchaException('Incorrect $textPaddingLeft settings.'); } if (count($this->backgrounds) < 1) { throw new CaptchaException('Invalid $backgrounds parameter.'); } if (count($this->fonts) < 1) { throw new CaptchaException('Invalid $fonts parameter.'); } if (count($this->fontColors) < 1) { throw new CaptchaException('Invalid $fontColors parameter.'); } if ($this->angle < 0) { throw new CaptchaException('Incorrect $angle settings.'); } if ($this->numberLines < 0) { throw new CaptchaException('Incorrect $numberLines settings.'); } } /** * @return array */ public function getBackgrounds(): array { return $this->backgrounds; } public function randomBackground(): string { return Arr::random($this->getBackgrounds()); } /** * @return array */ public function getFonts(): array { return $this->fonts; } public function randomFont(): string { return Arr::random($this->getFonts()); } /** * @return array */ public function getFontColors(): array { return $this->fontColors; } public function randomFontColor(): string { return Arr::random($this->getFontColors()); } /** * @return int */ public function getWidth(): int { return $this->width; } /** * @return int */ public function getHeight(): int { return $this->height; } /** * @return int */ public function getTextPaddingTop(): int { return $this->textPaddingTop; } /** * @return int */ public function getTextPaddingLeft(): int { return $this->textPaddingLeft; } /** * @return int */ public function getAngle(): int { return $this->angle; } public function randomAngle(): int { return mt_rand($this->getAngle() * -1, $this->getAngle()); } public function getNumberLines(): int { return $this->numberLines; } /** * @return array */ public function getLineColors(): array { return $this->lineColors; } }