title: Verification code meta:
- name: description content: EasySwoole verification code component, can be customized to generate QR code graphics or base64 encoding.
- name: keywords content: swoole|swoole extension|swoole framework|easyswoole|Verification code|Swoole verification code
Configuration
An object instance that needs to be passed to Config before generating the verification code After the Config class is instantiated, there will be a default configuration, and a verification code image can be generated without configuration.
Implementation code:
<?php// +----------------------------------------------------------------------// | easySwoole [ use swoole easily just like echo "hello world" ]// +----------------------------------------------------------------------// | WebSite: https://www.easyswoole.com// +----------------------------------------------------------------------// | Welcome Join QQGroup 633921431// +----------------------------------------------------------------------namespace EasySwoole\VerifyCode;use EasySwoole\Spl\SplBean;/*** 验证码配置文件* Class VerifyCodeConf* @author : evalor <master@evalor.cn>* @package Vendor\VerifyCode*/class Conf extends SplBean{public $charset = '1234567890AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'; // 字母表public $useCurve = false; // Confusion curvepublic $useNoise = false; // Random noisepublic $useFont = null; // Specified fontpublic $fontColor = null; // font colorpublic $backColor = null; // background colorpublic $imageL = null; // Image widthpublic $imageH = null; // Picture heightpublic $fonts = []; // Extra fontpublic $fontSize = 25; // font sizepublic $length = 4; // Number of generated bitspublic $mime = MIME::PNG; // Setting typepublic $temp = '/tmp'; // Set the cache directorypublic function setTemp($temp){if (!is_dir($temp)) mkdir($temp,0755) && chmod($temp,0755);$this->temp = $temp;}/*** Set image format* @param $MimeType* @author : evalor <master@evalor.cn>* @return Conf*/public function setMimeType($MimeType){$allowMime = [ MIME::PNG, MIME::GIF, MIME::JPG ];if (in_array($MimeType, $allowMime)) $this->mime = $MimeType;return $this;}/*** Set character set* @param string $charset* @return Conf*/public function setCharset($charset){is_string($charset) && $this->charset = $charset;return $this;}/*** Turn on the confusion curve* @param bool $useCurve* @return Conf*/public function setUseCurve($useCurve = true){is_bool($useCurve) && $this->useCurve = $useCurve;return $this;}/*** Turn on noise generation* @param bool $useNoise* @return Conf*/public function setUseNoise($useNoise = true){is_bool($useNoise) && $this->useNoise = $useNoise;return $this;}/*** Use custom fonts* @param string $useFont* @return Conf*/public function setUseFont($useFont){is_string($useFont) && $this->useFont = $useFont;return $this;}/*** Set text color* @param array|string $fontColor* @return Conf*/public function setFontColor($fontColor){if (is_string($fontColor)) $this->fontColor = $this->HEXToRGB($fontColor);if (is_array($fontColor)) $this->fontColor = $fontColor;return $this;}/*** Set the background color* @param null $backColor* @return Conf*/public function setBackColor($backColor){if (is_string($backColor)) $this->backColor = $this->HEXToRGB($backColor);if (is_array($backColor)) $this->backColor = $backColor;return $this;}/*** Set image width* @param int|string $imageL* @return Conf*/public function setImageWidth($imageL){$this->imageL = intval($imageL);return $this;}/*** Set picture height* @param null $imageH* @return Conf*/public function setImageHeight($imageH){$this->imageH = intval($imageH);return $this;}/*** Set font set* @param array|string $fonts* @return Conf*/public function setFonts($fonts){if (is_string($fonts)) array_push($this->fonts, $fonts);if (is_array($fonts) && !empty($fonts)) {if (empty($this->fonts)) {$this->fonts = $fonts;} else {array_merge($this->fonts, $fonts);}}return $this;}/*** Set the font size* @param int $fontSize* @return Conf*/public function setFontSize($fontSize){$this->fontSize = intval($fontSize);return $this;}/*** Set the verification code length* @param int $length* @return Conf*/public function setLength($length){$this->length = intval($length);return $this;}/*** Get configuration values* @param $name* @author : evalor <master@evalor.cn>* @return mixed*/public function __get($name){return $this->$name;}/*** Hex to RGB* @param $hexColor* @author : evalor <master@evalor.cn>* @return array*/function HEXToRGB($hexColor){$color = str_replace('#', '', $hexColor);if (strlen($color) > 3) {$rgb = array(hexdec(substr($color, 0, 2)),hexdec(substr($color, 2, 2)),hexdec(substr($color, 4, 2)));} else {$color = $hexColor;$r = substr($color, 0, 1) . substr($color, 0, 1);$g = substr($color, 1, 1) . substr($color, 1, 1);$b = substr($color, 2, 1) . substr($color, 2, 1);$rgb = array(hexdec($r),hexdec($g),hexdec($b));}return $rgb;}}
