PSR-4目录结构和一组函数的名称空间



我有一组我觉得很有用的PHP函数。我想为它们创建一个PSR-4兼容的存储库,但是我找到的指南(1,2,3)似乎只讨论自动加载的类。

例如,我的文件如下所示,每个文件有一个函数:
my_cool_function1.php
my_cool_function2.php
... etc.

如何从它们创建PSR-4兼容的库?

你找不到任何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规范(通常)映射到一个名称空间。

别忘了你可以在类中使用静态函数,这样PSR-4就会加载它们

class MyClass {
    public static my_cool_function1() {}
}

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

MyClass::my_cool_function1() {}

相关内容

  • 没有找到相关文章

最新更新