![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/brick/varexporter/src/Internal/ObjectExporter/ |
<?php declare(strict_types=1); namespace Brick\VarExporter\Internal\ObjectExporter; use Brick\VarExporter\Internal\ObjectExporter; /** * Handles instances of classes with __serialize() and __unserialize() methods. * * @internal This class is for internal use, and not part of the public API. It may change at any time without warning. */ class SerializeExporter extends ObjectExporter { /** * {@inheritDoc} */ public function supports(\ReflectionObject $reflectionObject) : bool { return $reflectionObject->hasMethod('__serialize') && $reflectionObject->hasMethod('__unserialize'); } /** * {@inheritDoc} */ public function export(object $object, \ReflectionObject $reflectionObject, array $path, array $parentIds) : array { $lines = $this->getCreateObjectCode($reflectionObject); $lines[] = ''; /** * @psalm-suppress MixedAssignment * @psalm-suppress MixedMethodCall */ $values = $object->__serialize(); $exportedValues = $this->exporter->export($values, $path, $parentIds); $exportedValues = $this->exporter->wrap($exportedValues, '$object->__unserialize(', ');'); $lines = array_merge($lines, $exportedValues); $lines[] = ''; $lines[] = 'return $object;'; return $this->wrapInClosure($lines); } }