Automattic\WooCommerce\Admin\RemoteSpecs\RuleProcessors\Transformers
TransformerService::apply
Apply transformers to the given value.
Method of the class: TransformerService{}
No Hooks.
Returns
Mixed|null.
Usage
$result = TransformerService::apply( $target_value, $transformer_configs, $is_default_set, $default_value );
- $target_value(mixed) (required)
- a value to transform.
- $transformer_configs(array) (required)
- transform configuration.
- $is_default_set(true|false) (required)
- flag on is default value set.
- $default_value(string) (required)
- default value.
TransformerService::apply() TransformerService::apply code WC 10.4.3
public static function apply( $target_value, array $transformer_configs, $is_default_set, $default_value ) {
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}" ); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
}
$target_value = $transformer->transform( $target_value, $transformer_config->arguments, $is_default_set ? $default_value : null );
// Break early when there's no more value to traverse.
if ( null === $target_value ) {
break;
}
}
if ( $is_default_set ) {
// Nulls always return the default value.
if ( null === $target_value ) {
return $default_value;
}
// When type of the default value is different from the target value, return the default value
// to ensure type safety.
if ( gettype( $default_value ) !== gettype( $target_value ) ) {
return $default_value;
}
}
return $target_value;
}