PHP 8.2.31
Preview: TransformerService.php Size: 1.98 KB
/home/nshryvcy/himaltourism.com/wp-content/plugins/woocommerce/src/Admin/RemoteInboxNotifications/TransformerService.php

<?php

namespace Automattic\WooCommerce\Admin\RemoteInboxNotifications;

use InvalidArgumentException;
use stdClass;

/**
 * A simple service class for the Transformer classes.
 *
 * Class TransformerService
 *
 * @package Automattic\WooCommerce\Admin\RemoteInboxNotifications
 */
class TransformerService {
	/**
	 * Create a transformer object by name.
	 *
	 * @param string $name name of the transformer.
	 *
	 * @return TransformerInterface|null
	 */
	public static function create_transformer( $name ) {
		$camel_cased = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $name ) ) );

		$classname = __NAMESPACE__ . '\\Transformers\\' . $camel_cased;
		if ( ! class_exists( $classname ) ) {
			return null;
		}

		return new $classname();
	}

	/**
	 * Apply transformers to the given value.
	 *
	 * @param mixed  $target_value a value to transform.
	 * @param array  $transformer_configs transform configuration.
	 * @param string $default default value.
	 *
	 * @throws InvalidArgumentException Throws when one of the requried arguments is missing.
	 * @return mixed|null
	 */
	public static function apply( $target_value, array $transformer_configs, $default ) {
		foreach ( $transformer_configs as $transformer_config ) {
			if ( ! isset( $transformer_config->use ) ) {
				throw new InvalidArgumentException( 'Missing required config value: use' );
			}

			if ( ! isset( $transformer_config->arguments ) ) {
				$transformer_config->arguments = null;
			}

			$transformer = self::create_transformer( $transformer_config->use );
			if ( null === $transformer ) {
				throw new InvalidArgumentException( "Unable to find a transformer by name: {$transformer_config->use}" );
			}

			$transformed_value = $transformer->transform( $target_value, $transformer_config->arguments, $default );
			// if the transformer returns null, then return the previously transformed value.
			if ( null === $transformed_value ) {
				return $target_value;
			}

			$target_value = $transformed_value;
		}

		return $target_value;
	}
}

Directory Contents

Dirs: 1 × Files: 34

Name Size Perms Modified Actions
- drwxr-xr-x 2026-03-03 06:10:19
Edit Download
1.58 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.17 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.13 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
5.20 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.52 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.73 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
689 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.97 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.11 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.29 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.21 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.38 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.22 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.22 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
703 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.39 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
775 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.48 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.75 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.48 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.26 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.26 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.13 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.21 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
657 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.60 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.22 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
3.63 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.76 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
788 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.98 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
503 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.60 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
881 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).