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

Breadcrumb

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

function Preloader::doPreload

2 calls to Preloader::doPreload()
Preloader::preload in vendor/symfony/dependency-injection/Dumper/Preloader.php
Preloader::preloadType in vendor/symfony/dependency-injection/Dumper/Preloader.php

File

vendor/symfony/dependency-injection/Dumper/Preloader.php, line 71

Class

Preloader
@author Nicolas Grekas <p@tchwork.com>

Namespace

Symfony\Component\DependencyInjection\Dumper

Code

private static function doPreload(string $class, array &$preloaded) : void {
    if (isset($preloaded[$class]) || \in_array($class, [
        'self',
        'static',
        'parent',
    ], true)) {
        return;
    }
    $preloaded[$class] = true;
    try {
        if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) {
            return;
        }
        $r = new \ReflectionClass($class);
        if ($r->isInternal()) {
            return;
        }
        $r->getConstants();
        $r->getDefaultProperties();
        foreach ($r->getProperties(\ReflectionProperty::IS_PUBLIC) as $p) {
            self::preloadType($p->getType(), $preloaded);
        }
        foreach ($r->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) {
            foreach ($m->getParameters() as $p) {
                if ($p->isDefaultValueAvailable() && $p->isDefaultValueConstant()) {
                    $c = $p->getDefaultValueConstantName();
                    if ($i = strpos($c, '::')) {
                        self::doPreload(substr($c, 0, $i), $preloaded);
                    }
                }
                self::preloadType($p->getType(), $preloaded);
            }
            self::preloadType($m->getReturnType(), $preloaded);
        }
    } catch (\Throwable) {
        // ignore missing classes
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal