Both vendor/autoload.php
files are basically identical:
require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInit1e055ec2de42b90d5e1653b608643281::getLoader();
In both files:
$composer_object = ComposerAutoloaderInit1e055ec2de42b90d5e1653b608643281::getLoader(); var_dump($composer_object); > object(ComposerAutoloadClassLoader
This has had me digging into Composer’s autoload files (which has been insightful), but I’m still perplexed:
$var = require_once '/srv/path_to_main/vendor/autoload.php'; var_dump($var); > boolean true $var = require_once '/srv/path_to_subdir/vendor/autoload.php'; var_dump($var); > object(ComposerAutoloadClassLoader
Why does requiring the first file return boolean true
, and not object(ComposerAutoloadClassLoader
?
Update
I created a copy of vendor/autoload.php
, vendor/aught.php
and when I require that one, it returns the object.
Advertisement
Answer
require_once
returns true
instead of the return value if the file has already been included or required.
You’ll find you get true
for the subdir one as well if you require it twice:
require_once '/srv/path_to_subdir/vendor/autoload.php'; $var = require_once '/srv/path_to_subdir/vendor/autoload.php'; var_dump( $var )