Php `编写器类加载器中的$prepend`参数
我在Composer中使用加载程序,就像这样Php `编写器类加载器中的$prepend`参数,php,composer-php,Php,Composer Php,我在Composer中使用加载程序,就像这样 /** @var \Composer\Autoload\ClassLoader $loader */ $loader = require __DIR__ . '/vendor/dependencies/autoload.php'; $loader->add('MyAppNamespace', __DIR__, true); 如您所见,加载程序采用3个参数,如下所述: 我对第三个布尔参数$prepend的作用感到非常困惑。上面的链接说,$pre
/** @var \Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__ . '/vendor/dependencies/autoload.php';
$loader->add('MyAppNamespace', __DIR__, true);
如您所见,加载程序采用3个参数,如下所述:
我对第三个布尔参数$prepend
的作用感到非常困惑。上面的链接说,$prepend
表示以下内容:是否在目录前添加前缀
。然而,我不知道这意味着什么
有人能用一个例子解释一下$prepend
参数的作用吗
谢谢 看看:
如您所见,$prepend
确定您所提供的路径(\uuuuuu DIR\uuuuuu
)是否将被前置或追加。通常这并不重要,因为每个命名空间只有一个路径,但可以有更多路径,例如,使用此机制覆盖由您自己的实现随供应商库交付的某些类
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}