Composer php 已加载类的编写器autload检查

Composer php 已加载类的编写器autload检查,composer-php,concrete5,concrete5-5.7,Composer Php,Concrete5,Concrete5 5.7,我正在我的项目中使用php的Composer依赖项管理器。我正在构建一个名为Concrete5的非开源CMS项目。他们也在用Composer加载内容 Concrete5和我自己的使用条令和条令的包都包含在composer.json文件中。在两个不同的位置加载条令时,我是否有自动加载问题?Composer和大多数其他自动加载程序使用标准PHP函数跟踪自动加载堆栈。这与PSR-0和PSR-4的规则相结合,使每个注册的自动加载程序都有机会实现对代码的依赖 所以,当你有两个自动加载器,可以满足相同的依赖

我正在我的项目中使用php的Composer依赖项管理器。我正在构建一个名为Concrete5的非开源CMS项目。他们也在用Composer加载内容


Concrete5和我自己的使用条令和条令的包都包含在composer.json文件中。在两个不同的位置加载条令时,我是否有自动加载问题?

Composer和大多数其他自动加载程序使用标准PHP函数跟踪自动加载堆栈。这与PSR-0和PSR-4的规则相结合,使每个注册的自动加载程序都有机会实现对代码的依赖

所以,当你有两个自动加载器,可以满足相同的依赖性,任何一个有机会回应第一赢。为了帮助实现这一点,
spl\u register\u autoload
提供了一种将自动加载器预先添加到堆栈的方法,以便它们首先运行。对于composer,这实际上是默认情况下发生的,禁用它以便加载依赖项的核心版本的方法是


另一个选择是在包
composer.json
中为核心提供的依赖项定义适当的版本(您可以在中找到)

这将防止composer删除重复版本的依赖项,其缺点是,当核心更新其依赖项时,您需要手动更新此列表

{
    "prepend-autoloader": false
}
{
    "provide": {
        "doctrine/dbal": "v2.5.1",
        "doctrine/orm": "v2.4.8"
    }
}