具有不同(较短)目录结构的Composer自动加载

时间:2013-07-17 09:12:38

标签: php composer-php autoload psr-0 psr-4

我想让Composer加载我的PHP类。根据命名空间,我按照目录结构工作。

例如,当\MyCompany\MyProject\Class1位于src/MyCompany/MyProject/Class1.php时,我的课程"autoload": { "psr-0": { "MyCompany\\MyProject\\": "src/" } } 就会被加载。我使用这个作曲家设置:

src/Class1.php

但是,我不想将所有我的文件放到MyCompany目录中,因为它是src中唯一的文件。我知道Java就是这样,但仍然如此。有没有办法设置Composer所以当它们直接在src中时会加载我的类?例如,来自档案{{1}}。

编辑:PSR-4直接解决了这个问题,虽然类图仍然有效(并且建议用于生产设置)。

2 个答案:

答案 0 :(得分:4)

这个怎么样?

"autoload": {
    "classmap": [
        "src"
    ]
}

答案 1 :(得分:1)

另一种方法是使用PSR-4,特别是如果你有多个类,即

"autoload": {
    "psr-4": { "MyCompany\\MyProject\\": "src/" }
}

这应该让你正确的位置。但是,正如我自己的经验所说,这可能需要一些修补,直到你做对了。点击此处:http://seld.be/notes/psr-4-autoloading-support-in-composer