$vars name => value (only scalar values are used). * @return string */ public static function render( string $template, array $vars ): string { $vars = Variables::with_aliases( $vars ); $text = preg_replace_callback( '/( ?)\{([A-Za-z0-9_:.\-]+)\}( ?)/', static function ( array $m ) use ( $vars ): string { $value = isset( $vars[ $m[2] ] ) && is_scalar( $vars[ $m[2] ] ) ? trim( (string) $vars[ $m[2] ] ) : ''; if ( '' === $value ) { return $m[3]; } return $m[1] . $value . $m[3]; }, $template ); return trim( (string) preg_replace( '/ {2,}/', ' ', (string) $text ) ); } }