Что ж, если вы используете ООП, то вам действительно стоит взглянуть на функции spl_autoload и spl_autoload_register .Если вы не используете ООП, то почему нет?; -)
Что касается включаемого файла, я полагаю, что это не самая плохая вещь в мире (я думаю, у вас просто есть какая-то функция поиска, которая делает включение для вас?), Ноон может быстро раздуться и на самом деле может уменьшить переносимость.
Большинство фреймворков (включая пару самодельных, с которыми я столкнулся) просто будут иметь некоторую константу, такую как BASEDIR, а затем просто включать файлы, относящиеся к BASEDIR.В этих случаях перемещение объектов из папки в папку было на самом деле не слишком распространенным, потому что хорошая структура разделяет файлы по шаблону MVC.