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

Reply via email to