PSR-4目录结构和命名空间的一组功能?

use*_*841 5 php psr-4

我有一组有用的PHP函数.我想创建一个PSR-4储存库他们,但我发现导游(1,2,3)似乎只讲类自动加载.

例如,我的文件如下,每个文件有一个函数:

my_cool_function1.php
my_cool_function2.php
... etc.
Run Code Online (Sandbox Code Playgroud)

如何从中创建符合PSR-4的库?

Amo*_*Amo 7

您无法找到PSR-4自动加载文件的任何文档而不是类的原因,因为正如规范所述 - 它是专为自动加载类而设计的.

直接取自官方规格:

此PSR描述了从文件路径自动加载的规范.它完全可互操作,除了包括PSR-0在内的任何其他自动加载规范外,还可以使用它.此PSR还描述了根据规范放置将自动加载的文件的位置.

进一步来说;

术语" "指的是,接口,特征和其他类似结构.

具有函数的文件实际上并不是类似的结构.

要自动加载这些文件,您需要使用files以下自动加载:

"autoload": {
    "files": [
        "src/my_cool_function1.php",
        "src/my_cool_function2.php"
    ],
    "psr-4": {
        "SomeNamespace\\": "src/YourNamespace/"
    }
}
Run Code Online (Sandbox Code Playgroud)

您会注意到,psr-4规范(通常)映射到命名空间.