如何使用安装了编辑器的库自动加载一组库API函数?
我有一个带有函数API的库,用于连接库内部对象,并希望composer自动加载API并在安装后使其可用,而不需要最终开发人员包含文件。
目前只需加载__init__.php
即可加载库,它包含API函数和自动加载器(如果需要)。
谢谢!
答案 0 :(得分:2)
Composer始终要求最终开发人员包含一个文件vendor/autoload.php
。你无法轻易做到这一点。
但您可以做的是使__init__.php
包括{
"name": "yourvendorname/yourfancylibraryname",
"license": "any open source identifier",
"autoload": {
"psr-0": {
"Foo_Api": "src/files"
},
"classmap": [
"extra/folders_with_any_other_class_not_conforming_to_psr0_or_psr4"
],
"files": [
"functions/file_with_your_function_definitions.php"
]
}
}
可选,因为Composer的集成允许您使用该自动加载器。这也适用于无法真正自动加载的函数 - 如果被告知,Composer会提供始终包含文件。
因此,最终您的API库的Composer配置如下所示:
__init__.php
我不知道您的课程是否符合PSR-0甚至PSR-4,但如果他们这样做,如果您可以使用这些标准声明自动装带器,您和每个人都会受益。如果没有:Classmap会帮助你。
您的功能定义将由“文件”中提到的文件加载。
对于Composer,您不再需要自己的自动加载器。
当然你也可以简单地提到旧的{{1}}作为要包含在“文件”中的文件,但这会将你的库与所有其他类分开,可能性能较差(Composer已经有了非常好的自动加载器 - 不需要其中两个)并且肯定会排除所有类被转储到更快的Composer类映射自动加载器中。