![]() 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/mautic.corals.io/vendor/jms/serializer/src/Exclusion/ |
<?php declare(strict_types=1); namespace JMS\Serializer\Exclusion; use JMS\Serializer\Context; use JMS\Serializer\Metadata\ClassMetadata; use JMS\Serializer\Metadata\PropertyMetadata; /** * @author Adrien Brault <[email protected]> */ final class DepthExclusionStrategy implements ExclusionStrategyInterface { public function shouldSkipClass(ClassMetadata $metadata, Context $context): bool { return $this->isTooDeep($context); } public function shouldSkipProperty(PropertyMetadata $property, Context $context): bool { return $this->isTooDeep($context); } private function isTooDeep(Context $context): bool { $relativeDepth = 0; foreach ($context->getMetadataStack() as $metadata) { if (!$metadata instanceof PropertyMetadata) { continue; } $relativeDepth++; if (0 === $metadata->maxDepth && $context->getMetadataStack()->top() === $metadata) { continue; } if (null !== $metadata->maxDepth && $relativeDepth > $metadata->maxDepth) { return true; } } return false; } }