File: /wordpress/plugins/wp-cloud-client/1.1.3/src/Handler/GetSiteOptionsHandler.php
<?php
declare(strict_types=1);
namespace VPlugins\WPCloudClient\Handler;
use VPlugins\WPCloudClient\SiteOptions\OptionRegistry;
final class GetSiteOptionsHandler extends AbstractHandler {
/**
* Class constructor.
*
* @param OptionRegistry $optionRegistry Option registry.
*/
public function __construct(
private readonly OptionRegistry $optionRegistry,
) {}
/**
* Return the action name.
*
* @return string Action name.
*/
public function action(): string {
return 'get_site_options';
}
/**
* Read the requested site options.
*
* @param array<string, mixed> $params Action parameters.
* @return array<string, mixed> Option values.
*
* @throws \InvalidArgumentException If options parameter is invalid.
*/
public function execute( array $params ): array {
$this->requireParams( $params, 'options' );
$options = $params['options'];
if ( ! is_array( $options ) ) {
throw new \InvalidArgumentException( 'options must be an array of option key strings' );
}
return $this->optionRegistry->read( $options );
}
}