http://laravel70.local/composer/load
D:\Projects\laravel70\public\index.php
<?php
define('LARAVEL_START', microtime(true));
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
D:\Projects\laravel70\vendor\autoload.php
<?php // autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return
ComposerAutoloaderInit98539fbf3bd727013da7dd9f75b19318::getLoader();
D:\Projects\laravel70\vendor\composer\autoload_real.php
<?php // autoload_real.php @generated by Composer
class ComposerAutoloaderInit98539fbf3bd727013da7dd9f75b19318
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(
array
('ComposerAutoloaderInit98539fbf3bd727013da7dd9f75b19318',
'loadClassLoader'),
true, true
);
self::$loader = $loader
= new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(
array(
'ComposerAutoloaderInit98539fbf3bd727013da7dd9f75b19318',
'loadClassLoader')
);
$useStaticLoader = PHP_VERSION_ID >= 50600
&& !defined('HHVM_VERSION')
&&(!function_exists('zend_loader_file_encoded')
|| !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(
\Composer\Autoload\ComposerStaticInit
98539fbf3bd727013da7dd9f75b19318::getInitializer(
$loader
)
);
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit
98539fbf3bd727013da7dd9f75b19318::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire98539fbf3bd727013da7dd9f75b19318(
$fileIdentifier, $file
);
}
return $loader;
}
}
function composerRequire98539fbf3bd727013da7dd9f75b19318(
$fileIdentifier, $file)
{
if (empty(
$GLOBALS['__composer_autoload_files'][$fileIdentifier]))
{
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier]
= true;
}
}
D:\Projects\laravel70\vendor\composer\autoload_static.php
<?php // autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInit98539fbf3bd727013da7dd9f75b19318
{
/**
* This array $files will contain file that are
* autoload of each package
*
* + Maybe bootstrap files
* + Maybe ini files
*/
public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..'
. '/symfony/polyfill-php80/bootstrap.php',
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..'
. '/symfony/deprecation-contracts/function.php',
….
);
public static $prefixLengthsPsr4 = array (
'v' => array('voku\\' => 5),
'S' =>array (
'Symfony\\Polyfill\\Php81\\' => 23,
'Symfony\\Polyfill\\Php80\\' => 23,
…..
),
);
/**
* Namespace to packages
*/
public static $prefixDirsPsr4 = array (
'Symfony\\Contracts\\Service\\' => array (
0 => __DIR__ . '/..' . '/symfony/service-contracts',
),
'Symfony\\Contracts\\EventDispatcher\\' => array (
0 => __DIR__ . '/..'
. '/symfony/event-dispatcher-contracts',
),
…..
);
/**
* Classes are mapped with php files
* they will be included when used
*/
public static $classMap = array(
'App\\Http\\Controllers\\Auth\\ConfirmPasswordController'
=> __DIR__ . '/../..' .
'/app/Http/Controllers/Auth/ConfirmPasswordController.php',
'App\\Http\\Controllers\\Auth\\ForgotPasswordController'
=> __DIR__ . '/../..' .
'/app/Http/Controllers/Auth/ForgotPasswordController.php',
……
……
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit
98539fbf3bd727013da7dd9f75b19318::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit
98539fbf3bd727013da7dd9f75b19318::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit
98539fbf3bd727013da7dd9f75b19318::$classMap;
}, null, ClassLoader::class);
}
}
D:\Projects\laravel70\vendor\composer\ClassLoader.php
<?php namespace Composer\Autoload;
class ClassLoader
{
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
// PSR-0
private $prefixesPsr0 = array();
private $fallbackDirsPsr0 = array();
...
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to
* prepend the autoloader or not
*/
public function register($prepend = false)
{
spl_autoload_register(
array($this, 'loadClass'),
true, $prepend
);
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
}
/**
* Finds the path to the file where the class is defined.
* @param string $class The name of the class
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative
|| isset($this->missingClasses[$class]))
{
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}
}
D:\Projects\laravel70\public\index.php:24
>>>
var_dump(111, 'call /../vendor/autoload.php');
require __DIR__.'/../vendor/autoload.php';
D:\Projects\laravel70\vendor\autoload.php:7
>>>
var_dump(222, 'Call /composer/autoload_real.php');
return ComposerAutoloaderInit
98539fbf3bd727013da7dd9f75b19318::getLoader();
D:\Projects\laravel70\vendor\composer\autoload_real.php:27
>>>
var_dump(333,
'new instance\Composer\Autoload\ClassLoader()');
self::$loader
= $loader = new \Composer\Autoload\ClassLoader();
D:\Projects\laravel70\vendor\composer\autoload_real.php:37
>>>
var_dump(444, 'Load vendor\composer\autoload_static.php
&& init data > ClassLoader');
call_user_func(\Composer\Autoload\ComposerStaticInit98539fbf3bd727013da7dd9f75b19318::getInitializer($loader));
D:\Projects\laravel70\vendor\composer\autoload_real.php:57
>>>
var_dump(555,
'Register namespace \Composer\Autoload\ClassLoader::register()');
$loader->register(true);
D:\Projects\laravel70\vendor\composer\ClassLoader.php:302
>>>
public function register($prepend = false)
{
var_dump(666,
'register loadClass() function for Autoload');
spl_autoload_register(array($this, 'loadClass'),
true, $prepend);
}
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:12
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:13
>>>>
<?php namespace App\Http\Controllers;
use App\Other\Composer\NewClassForAliasLoader;
class ComposerController extends Controller
{
public function load()
{
var_dump(777,
'Call App\Other\Composer\NewClassForAliasLoader from');
var_dump(777111,
'app\Http\Controllers\ComposerController.php');
$newClass = new NewClassForAliasLoader;
var_dump(999, $newClass);
echo 'composer in Controller';
}
}
D:\Projects\laravel70\vendor\composer\ClassLoader.php:325
D:\Projects\laravel70\vendor\composer\ClassLoader.php:326
>>>
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
if ($class == 'App\Other\Composer\NewClassForAliasLoader') {
var_dump(888, 'Map class: '. $class);
var_dump(888111, 'and include file class: '. $file);
}
includeFile($file);
return true;
}
}
http://laravel70.local/composer/load
>>>
D:\Projects\laravel70\public\index.php:24:int 111
D:\Projects\laravel70\public\index.php:24:string 'call /../vendor/autoload.php' (length=28)
D:\Projects\laravel70\vendor\autoload.php:7:int 222
D:\Projects\laravel70\vendor\autoload.php:7:string 'Call /composer/autoload_real.php' (length=32)
D:\Projects\laravel70\vendor\composer\autoload_real.php:27:int 333
D:\Projects\laravel70\vendor\composer\autoload_real.php:27:string 'new instance \Composer\Autoload\ClassLoader()' (length=45)
D:\Projects\laravel70\vendor\composer\autoload_real.php:37:int 444
D:\Projects\laravel70\vendor\composer\autoload_real.php:37:string 'Load vendor\composer\autoload_static.php && init data > ClassLoader' (length=67)
D:\Projects\laravel70\vendor\composer\autoload_real.php:57:int 555
D:\Projects\laravel70\vendor\composer\autoload_real.php:57:string 'Register namespace \Composer\Autoload\ClassLoader::register()' (length=61)
D:\Projects\laravel70\vendor\composer\ClassLoader.php:302:int 666
D:\Projects\laravel70\vendor\composer\ClassLoader.php:302:string 'register loadClass() function for Autoload' (length=42)
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:12:int 777
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:12:string 'Call App\Other\Composer\NewClassForAliasLoader from' (length=51)
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:13:int 777111
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:13:string 'app\Http\Controllers\ComposerController.php' (length=43)
D:\Projects\laravel70\vendor\composer\ClassLoader.php:325:int 888
D:\Projects\laravel70\vendor\composer\ClassLoader.php:325:string 'Map class: App\Other\Composer\NewClassForAliasLoader' (length=52)
D:\Projects\laravel70\vendor\composer\ClassLoader.php:326:int 888111
D:\Projects\laravel70\vendor\composer\ClassLoader.php:326:string 'and include file class: D:\Projects\laravel70\vendor\composer/../../app\Other\Composer\NewClassForAliasLoader.php' (length=113)
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:16:int 999
D:\Projects\laravel70\app\Http\Controllers\ComposerController.php:16:
object(App\Other\Composer\NewClassForAliasLoader)[323]
public 'namespace' => string 'App\Other\Composer' (length=18)
public 'class' => string 'App\Other\Composer\NewClassForAliasLoader' (length=41)
composer in Controller