6

我有一组我觉得有用的 PHP 函数。我想为它们创建一个符合 PSR-4 的存储库,但我找到的指南(123)似乎只讨论了用于自动加载的类。

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

my_cool_function1.php
my_cool_function2.php
... etc.

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

4

2 回答 2

9

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

直接取自官方规格:

此 PSR 描述了从文件路径自动加载的规范。它是完全可互操作的,并且可以与任何其他自动加载规范(包括 PSR-0)一起使用。此 PSR 还描述了放置将根据规范自动加载的文件的位置。

进一步来说;

术语“”是指接口特征和其他类似结构。

具有函数的文件并不是真正相似的结构。

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

"autoload": {
    "files": [
        "src/my_cool_function1.php",
        "src/my_cool_function2.php"
    ],
    "psr-4": {
        "SomeNamespace\\": "src/YourNamespace/"
    }
}

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

于 2015-09-07T17:14:49.287 回答
1

不要忘记您可以在类中使用静态函数,以便 PSR-4 加载它们

class MyClass {
    public static my_cool_function1() {}
}

然后,您可以使用冒号运算符将它们作为普通函数调用:

MyClass::my_cool_function1() {}
于 2018-08-29T23:53:58.480 回答