PHP 中的自动加载器,没有用于非 class 文件的作曲家或任何其他库

Autoloader in PHP, without composer or any other libraries for non-class files

我一直在搜索自动加载器,我找到的每个解决方案都是关于 classes(SPL 自动加载)、composer 等等。

所以我在想,非class文件呢,我有一些功能,一些程序代码等

我知道这一种方法,但它对我来说不是一个很好的解决方案。

$RequiredFiles = array(
    '/functions/function1.php',
    '/functions/function2.php',
    '/procedural/code1.php',
    '/procedural/code2.php',
    ....
);
foreach ($RequiredFiles as $File) {
    $Path = __DIR__ . $File;
    require $Path;
}

我的问题是,如何为非 class 文件制作自动加载器?

我不想做这样的事情

foreach (glob('/functions/*.php') as $File) {
   if( $File !== '/functions/donotincludethis.php'){
     require $File;
   }
}

我想有更好更安全的方法来做到这一点,当然没有作曲家。

自动加载就是为了解决代码需要运行的依赖。我想到了一个方法,类似于容器。您需要解决的代码的依赖项名称取决于数组的键。这个数组的值就是要导入的PHP个文件。推荐require_once函数。

Only classes and interfaces can be autoloaded. 自动加载 "procedural code files" 没有意义;除了 require 'file.php',你怎么称呼它们?函数 可以 理论上可以自动加载但实际上 PHP 不允许它,所以为了包含函数定义,你仍然需要在你的顶部使用 require_once 'my_funcs.php'文件。