我有一组有用的PHP函数。我想为他们创建一个符合PSR-4的存储库,但我找到的指南(1,2,3)似乎只谈论自动加载的类。
例如,我的文件如下,每个文件有一个函数:
my_cool_function1.php
my_cool_function2.php
... etc.
如何从中创建符合PSR-4的库?
答案 0 :(得分:6)
您无法找到PSR-4自动加载文件的任何文档而不是类的原因,因为specification状态 - 它是专为自动加载类而设计的。
直接取自官方规格:
此PSR描述了从文件路径自动加载类的规范。它完全可互操作,除了包括PSR-0在内的任何其他自动加载规范外,还可以使用它。此PSR还描述了根据规范放置将自动加载的文件的位置。
更具体地说;
术语“ class ”指的是类,接口, traits 和其他类似的结构。
具有功能的文件实际上并不是类似的结构。
要自动加载这些文件,您需要使用files
自动加载:
"autoload": {
"files": [
"src/my_cool_function1.php",
"src/my_cool_function2.php"
],
"psr-4": {
"SomeNamespace\\": "src/YourNamespace/"
}
}
你会注意到,psr-4规范(通常)映射到命名空间。
答案 1 :(得分:0)
别忘了可以在类中使用静态函数,以便PSR-4可以加载它们
class MyClass {
public static my_cool_function1() {}
}
然后,您可以使用冒号运算符将它们作为普通函数调用:
MyClass::my_cool_function1() {}