public static function autoloadCodeForClass()

in prod/php/ElasticOTel/Autoloader.php [54:106]


    public static function autoloadCodeForClass(string $fqClassName): void
    {
        // Example of $fqClassName: Elastic\OTel\Autoloader

        BootstrapStageLogger::logTrace("Entered with fqClassName: `$fqClassName'", __FILE__, __LINE__, __CLASS__, __FUNCTION__);

        if (!self::shouldAutoloadCodeForClass($fqClassName)) {
            BootstrapStageLogger::logTrace(
                "shouldAutoloadCodeForClass returned false. fqClassName: {$fqClassName}",
                __FILE__,
                __LINE__,
                __CLASS__,
                __FUNCTION__
            );
            return;
        }

        // get the relative class name
        $relativeClass = substr($fqClassName, self::$autoloadFqClassNamePrefixLength);
        $classSrcFileRelative = ((DIRECTORY_SEPARATOR === '\\')
            ? $relativeClass
            : str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass)) . '.php';
        $classSrcFileAbsolute = self::$srcRootDir . DIRECTORY_SEPARATOR . $classSrcFileRelative;

        if (file_exists($classSrcFileAbsolute)) {
            BootstrapStageLogger::logTrace(
                "Before require `$classSrcFileAbsolute' ...",
                __FILE__,
                __LINE__,
                __CLASS__,
                __FUNCTION__
            );

            require $classSrcFileAbsolute;

            BootstrapStageLogger::logTrace(
                "After require `$classSrcFileAbsolute' ...",
                __FILE__,
                __LINE__,
                __CLASS__,
                __FUNCTION__
            );
        } else {
            BootstrapStageLogger::logTrace(
                "File with the code for class doesn't exist."
                    . " classSrcFile: `$classSrcFileAbsolute'. fqClassName: `$fqClassName'",
                __FILE__,
                __LINE__,
                __CLASS__,
                __FUNCTION__
            );
        }
    }