AccessControl::NO_ACCESS_RESTRICTION, ]; public function __construct( PageRenderer $renderer, CaptchaRenderer $captchaRenderer ) { $this->pageRenderer = $renderer; $this->captchaRenderer = $captchaRenderer; } public function render($data) { $this->pageRenderer->render($data); } public function image($data) { $width = !empty($data['width']) ? (int)$data['width'] : null; $height = !empty($data['height']) ? (int)$data['height'] : null; $sessionId = $data['captcha_session_id'] ?? null; if (!$sessionId) { return; } $this->captchaRenderer->renderImage($sessionId, $width, $height); exit; } public function audio($data) { $sessionId = $data['captcha_session_id'] ?? null; if (!$sessionId) { return; } $this->captchaRenderer->renderAudio($sessionId); exit; } public function refresh($data) { $sessionId = $data['captcha_session_id'] ?? null; if (!$sessionId) { return; } $this->captchaRenderer->refreshPhrase($sessionId); } }