文件目录是:
$ cd src/lib/Rpc/
$ ls
a.php b.php c.php
然后,我在composer.json
文件中写下这一行:
autoload: {
psr-4: {
Rpc\\: src/lib/Rpc/
}
}
现在我想加载加载Rpc
lib时首先加载的文件。
因为文件需要设置全局函数,文件的内容为:
<?php
Rpc\Chan::setDefaultVar();
那么,我该如何编写composer.json
文件?
答案 0 :(得分:3)
好的,让我们这样做......
a)composer.json
文件的语法无效。
您可以使用CLI上的composer.json
命令检查composer validate composer.json
文件的语法。它将为您提供有关缺失属性和语法的一些详细信息。
您的最小composer.json
文件应包含名称,说明和许可 - 但validate
会告诉您。
我已修复您的composer.json
语法并添加了缺失的属性 - 以帮助您入门。
{
"name": "thinkerou/rpc-project",
"description": "description for my rpc-project",
"license": "MIT",
"autoload": {
"psr-4": {
"Rpc\\": "src/lib/Rpc/"
}
}
}
b)自动加载问题
由于语言障碍,你有点难以理解你的问题,但是 我理解为这样:你想要总是加载你的库的一个文件,因为它使用静态函数初始化一些值,对吗?
我建议在这种情况下使用files
自动加载机制。它将在每个请求(!)上明确要求某些文件。 (当你的软件包包含PHP无法自动加载的PHP函数时,它经常被使用,但在这种情况下也可以使用。)
示例:
{
"autoload": {
"files": ["autoload_this_file_on_every_request.php"]
}
}
所以,最后用&#34; PSR-4自动加载的完整例子&#34;对于您的图书馆的课程和&#34;文件自动加载&#34;对于一个特定文件,看起来像这样:
{
"name": "thinkerou/rpc-project",
"description": "description for my rpc-project",
"license": "MIT",
"autoload": {
"psr-4": {
"Rpc\\": "src/lib/Rpc/"
},
"files": ["src/lib/Rpc/autoload_this_file_on_every_request.php"]
}
}