Composer包自动加载

ger*_*orn 1 php composer-php packagist

我无法让我的图书馆工作.目录结构是lib-name/src,在主目录和测试目录中,如何告诉作曲家从/ lib-name/src/main文件夹加载?

链接到我的库github https://github.com/gerardorn/catalogo

Jas*_*els 7

有三种方法可以映射您的类以使用composer 进行自动加载.

PSR-0

推荐的方法是兼容PSR-0.该协议描述了库的目录结构.每个命名空间都需要是一个目录.带下划线的类也是分开的(PEAR样式).

在您的情况下,类Catalogable具有命名空间gerardorn\catalogo.要与PSR-0兼容,目录结构是:

- src
   - main
      - gerardorn
         - catalogo
            - Catalogable.php
Run Code Online (Sandbox Code Playgroud)

在你的composer.json你应该把以下内容:

"autoload" : {
    "psr-0" : {"gerardorn" : "src/main"}
}
Run Code Online (Sandbox Code Playgroud)

类映射

或者你可以使用classmap.无论命名空间如何,都会在目录中搜索类.

"autoload": {
    "classmap": ["src/main"]
}
Run Code Online (Sandbox Code Playgroud)

第3种方法files不适用于您的情况.


PHPUnit的

请注意,需要PHPUnit来测试您的库,而不是运行您的库.因此,您不应该将其作为必需的库.

你正在编写单元测试,这很好.您应该注册Travis CI.每次推送到GitHub时它都会运行你的PHPUnit测试,如果出现问题则通过电子邮件发出警告.