HEX
Server: nginx
System: Linux pool195-106-36.bur.atomicsites.net 6.12.57+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1~bpo12+1 (2025-11-17) x86_64
User: (0)
PHP: 8.3.32
Disabled: pcntl_fork
Upload Files
File: //wordpress/plugins/wp-cloud-client/1.1.5/src/Handler/SetSiteOptionsHandler.php
<?php

declare(strict_types=1);

namespace VPlugins\WPCloudClient\Handler;

use VPlugins\WPCloudClient\SiteOptions\OptionRegistry;

final class SetSiteOptionsHandler extends AbstractHandler {

	/**
	 * Constructor.
	 *
	 * @param OptionRegistry $optionRegistry The option registry instance.
	 */
	public function __construct(
		private readonly OptionRegistry $optionRegistry,
	) {}

	/**
	 * Return the action name this handler responds to.
	 *
	 * @return string The action identifier.
	 */
	public function action(): string {
		return 'set_site_options';
	}

	/**
	 * Execute the set site options action.
	 *
	 * @param array $params The request parameters.
	 * @return array The written option values.
	 * @throws \InvalidArgumentException When options is not a non-empty array.
	 */
	public function execute( array $params ): array {
		$this->requireParams( $params, 'options' );

		$options = $params['options'];

		if ( ! is_array( $options ) || empty( $options ) ) {
			throw new \InvalidArgumentException( 'options must be a non-empty object of key-value pairs' );
		}

		return $this->optionRegistry->write( $options );
	}
}