On Sat, Mar 27, 2021, at 11:52 AM, Abdul Haq Sheikh wrote: > If we want to use composer packages, we have to include > 'vendor/autoload.php', and if we don't have a front controller design > pattern, we must include 'vendor/autoload.php' on every/most files. Why not > to auto include 'vendor/autoload.php' file (if vendor folder exists)? > * PHP will use include_once to include file > > Example Directory Structure: > - Index.php (file) > - Test.php (file) > - Classes (folder) > -- Classes/test2.php (file) > - Vendor (folder) > > - On Index.php, php will automatically include 'vendor/autoload.php' > because the vendor directory exists. > - On Test.php, php will automatically include 'vendor/autoload.php' > because the vendor directory exists. > - On Classes/test2.php, since file is in sub directory and here vendor > directory doesn't exist, so php will not include 'vendor/autoload.php'
vendor/autoload.php is a Composer-specific convention. It's not something imposed by PHP itself. It's also quite simple to auto-include a file on every request, using the auto_append_file ini directive: https://www.php.net/manual/en/ini.core.php#ini.auto-prepend-file If you don't have one or a small number of front controllers, that's a good setting to look into for exactly this purpose. --Larry Garfield -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php