oont-contents/plugins/mailpoet/lib/Captcha/CaptchaPhrase.php
2025-02-10 13:57:45 +01:00

32 lines
891 B
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Captcha;
if (!defined('ABSPATH')) exit;
use MailPoetVendor\Gregwar\Captcha\PhraseBuilder;
class CaptchaPhrase {
private CaptchaSession $session;
private PhraseBuilder $phraseBuilder;
public function __construct(
CaptchaSession $session,
PhraseBuilder $phraseBuilder = null
) {
$this->session = $session;
$this->phraseBuilder = $phraseBuilder ?? new PhraseBuilder();
}
public function createPhrase(string $sessionId): string {
$storage = ['phrase' => $this->phraseBuilder->build()];
$this->session->setCaptchaHash($sessionId, $storage);
return $storage['phrase'];
}
public function getPhrase(string $sessionId): ?string {
$storage = $this->session->getCaptchaHash($sessionId);
return (isset($storage['phrase']) && is_string($storage['phrase'])) ? $storage['phrase'] : null;
}
}