Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Enumerator.php

class Enumerator

Hierarchy

  • class \SebastianBergmann\ObjectEnumerator\Enumerator

Expanded class hierarchy of Enumerator

2 files declare their use of Enumerator
ExcludeList.php in vendor/phpunit/phpunit/src/Util/ExcludeList.php
TestCase.php in vendor/phpunit/phpunit/src/Framework/TestCase.php

File

vendor/sebastian/object-enumerator/src/Enumerator.php, line 18

Namespace

SebastianBergmann\ObjectEnumerator
View source
final class Enumerator {
    
    /**
     * @psalm-return list<object>
     */
    public function enumerate(array|object $variable, Context $processed = new Context()) : array {
        $objects = [];
        if ($processed->contains($variable)) {
            return $objects;
        }
        $array = $variable;
        
        /* @noinspection UnusedFunctionResultInspection */
        $processed->add($variable);
        if (is_array($variable)) {
            foreach ($array as $element) {
                if (!is_array($element) && !is_object($element)) {
                    continue;
                }
                
                /** @noinspection SlowArrayOperationsInLoopInspection */
                $objects = array_merge($objects, $this->enumerate($element, $processed));
            }
            return $objects;
        }
        $objects[] = $variable;
        foreach ((new ObjectReflector())->getProperties($variable) as $value) {
            if (!is_array($value) && !is_object($value)) {
                continue;
            }
            
            /** @noinspection SlowArrayOperationsInLoopInspection */
            $objects = array_merge($objects, $this->enumerate($value, $processed));
        }
        return $objects;
    }

}

Members

Title Sort descending Modifiers Object type Summary
Enumerator::enumerate public function @psalm-return list&lt;object&gt;
RSS feed
Powered by Drupal