我无法让我的图书馆工作。目录结构是 lib-name/src,里面有一个主目录和一个测试目录,我如何告诉作曲家从 /lib-name/src/main 文件夹加载?
链接到我的图书馆 github https://github.com/gerardorn/catalogo
我无法让我的图书馆工作。目录结构是 lib-name/src,里面有一个主目录和一个测试目录,我如何告诉作曲家从 /lib-name/src/main 文件夹加载?
链接到我的图书馆 github https://github.com/gerardorn/catalogo
有 3 种方法可以映射您的类以使用 composer 进行自动加载。
推荐的方式是兼容PSR-0 。该协议描述了库的目录结构。每个命名空间都需要是一个目录。带下划线的类也是分开的(PEAR 风格)。
在您的情况下,Catalogable类有一个 namespace gerardorn\catalogo
。要与 PSR-0 兼容,目录结构是:
- src
- main
- gerardorn
- catalogo
- Catalogable.php
在你的composer.json
你应该把以下内容:
"autoload" : {
"psr-0" : {"gerardorn" : "src/main"}
}
或者,您可以使用classmap
. 无论命名空间如何,都会在目录中搜索类。
"autoload": {
"classmap": ["src/main"]
}
第三种方法files
不适用于您的情况。
请注意,需要 PHPUnit 来测试您的库,而不是运行您的库。因此,您不应该将其作为必需的库。
编写单元测试很好。您应该注册Travis CI。每次您推送到 GitHub 时,它都会运行您的 PHPUnit 测试,并在出现问题时(通过电子邮件)警告您。
您的目录结构应该与PSR-0兼容。
即,您的文件Catalogable.php有一个 namespace gerardorn\catalogo
,因此您的目录结构必须与以下内容匹配。
- src
- main
- gerardorn
- catalogo