在composer.json中指定自动加载

时间:2013-06-05 18:26:35

标签: php composer-php packagist

我开始使用Composer,我对如何指定应该如何自动加载感到困惑。

我最初的假设是,人们会定义如何在此包中自动加载包的类。然而,我得到的印象是应该在使用包的项目中指定它。是这样的吗?

我希望不是!我不希望库的用户知道这个库的自动加载是如何工作的,例如在类所在的目录中。例如,我不希望某个客户端知道“MyLibrary”在名为“includes”的目录中有其类:

"autoload": {
    "classmap": [
        "vendor/MyLibrary/includes/",
    ]
}

另一方面,如果我目前的印象是错误的,因此我的初步假设是正确的,那么我的问题是如何实现这一点。我尝试在我的一个库的composer.json文件中使用以下内容,但是在某处安装它时,生成的自动加载类图中不会显示任何条目。

"autoload": {
    "classmap": [
        "includes/",
    ]
}

1 个答案:

答案 0 :(得分:0)

我最初的假设是正确的。需要在包的composer.json文件中为包定义自动加载。包之外的任何内容都不应该知道自动加载是如何完成的。我不确定为什么我做的事不能奏效。无论如何,我最近没有遇到过这个问题。