PHP 7.4.33
Preview: ComposerAutoloaderScanner.php Size: 1.13 KB
/var/www/multi-event-cfp.bitkit.dk/httpdocs/vendor/zircote/swagger-php/src/Analysers/ComposerAutoloaderScanner.php
<?php declare(strict_types=1);

/**
 * @license Apache 2.0
 */

namespace OpenApi\Analysers;

use Composer\Autoload\ClassLoader;

/**
 * Scans for classes/interfaces/traits.
 *
 * Relies on a `composer --optimized` run in order to utilize
 * the generated class map.
 */
class ComposerAutoloaderScanner
{
    /**
     * Collect all classes/interfaces/traits known by autoloaders.
     */
    public function scan(array $namespaces): array
    {
        $units = [];
        if ($autoloader = $this->getComposerAutoloader()) {
            foreach (array_keys($autoloader->getClassMap()) as $unit) {
                foreach ($namespaces as $namespace) {
                    if (0 === strpos($unit, $namespace)) {
                        $units[] = $unit;
                        break;
                    }
                }
            }
        }

        return $units;
    }

    public static function getComposerAutoloader(): ?ClassLoader
    {
        foreach (spl_autoload_functions() as $fkt) {
            if (is_array($fkt) && $fkt[0] instanceof ClassLoader) {
                return $fkt[0];
            }
        }

        return null;
    }
}

Directory Contents

Dirs: 0 × Files: 9
Name Size Perms Modified Actions
332 B lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
318 B lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
4.76 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
1.13 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
1.68 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
2.30 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
6.91 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
23.13 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
11.18 KB lrw-rw-r-- 2022-04-17 01:42:30
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).