<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
namespace Yoast\WP\SEO\AI\Authorization\Infrastructure;
use Yoast\WP\SEO\AI\Authorization\Application\Code_Generator_Interface;
/**
* Class Code_Generator.
*/
class Code_Generator implements Code_Generator_Interface {
/**
* Generates a unique code using the user's email and random data.
*
* @param string $user_email The user's email.
* @param int $length The length of the returned value.
*
* @return string The generated unique code.
*/
public function generate( string $user_email, int $length = 10 ): string {
$data = $user_email . \wp_generate_password( $length, false );
return \hash( 'sha256', $data );
}
}