* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Util; use PHPUnit\TextUI\Configuration\Registry as ConfigurationRegistry; use SebastianBergmann\Exporter\Exporter as OriginalExporter; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit */ final class Exporter { private static ?OriginalExporter $exporter = null; public static function export(mixed $value): string { return Sanitizer::sanitizeBidirectionalControlCharacters( self::exporter()->export($value), ); } /** * @param array $data */ public static function shortenedRecursiveExport(array $data): string { return Sanitizer::sanitizeBidirectionalControlCharacters( self::exporter()->shortenedRecursiveExport($data), ); } public static function shortenedExport(mixed $value): string { return Sanitizer::sanitizeBidirectionalControlCharacters( self::exporter()->shortenedExport($value), ); } private static function exporter(): OriginalExporter { if (self::$exporter !== null) { return self::$exporter; } self::$exporter = new OriginalExporter( ConfigurationRegistry::get()->shortenArraysForExportThreshold(), ); return self::$exporter; } }