如何使用 Composer 安装的库自动加载一组库 API 函数?

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

目前,该库仅通过包含以下内容来加载 __init__.php 它包括 API 函数和自动加载器(如果需要)。

谢谢!

有帮助吗?

解决方案

Composer 始终会要求最终开发人员包含一个文件,即 vendor/autoload.php. 。你不能让这件事变得更容易。

但你能做的就是包括 __init__.php 可选,因为 Composer 的集成允许您使用该自动加载器。这也适用于无法真正自动加载的函数 - Composer 会在被告知时始终包含文件。

因此,最终该 API 库的 Composer 配置将如下所示:

{
    "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"
        ]
    }
}

我不知道您的类是否符合 PSR-0 甚至 PSR-4,但如果符合,如果您可以使用这些标准声明自动加载器,您和每个人都会受益。如果不:类映射会帮助你。

您的函数定义将由“文件”中提到的一个或多个文件加载。

您不再需要为 Composer 使用自己的自动加载器。

当然你也可以简单地提到旧的 __init__.php 作为要包含在“文件”中的文件,但这会将您的库与所有其他类分开,性能可能会较差(Composer 已经有一个非常好的自动加载器 - 不需要有其中两个)并且肯定会排除所有类被转储到更快的 Composer 类映射自动加载器中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top