Composer - 自动加载API /自定义安装程序

时间:2014-02-25 17:19:23

标签: php composer-php

如何使用安装了编辑器的库自动加载一组库API函数?

我有一个带有函数API的库,用于连接库内部对象,并希望composer自动加载API并在安装后使其可用,而不需要最终开发人员包含文件。

目前只需加载__init__.php即可加载库,它包含API函数和自动加载器(如果需要)。

谢谢!

1 个答案:

答案 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类映射自动加载器中。