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'
文件。
我一直在搜索自动加载器,我找到的每个解决方案都是关于 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'
文件。