如何使用composer设置文件加载顺序



文件目录为:

$ cd src/lib/Rpc/
$ ls
a.php b.php c.php

然后,我在composer.json文件中写下一行:

autoload: {
psr-4: {
Rpc\: src/lib/Rpc/
}
}

现在我想加载文件,它将在加载Rpc-lib时首先加载。

因为文件需要设置全局功能,所以文件的内容:

<?php
RpcChan::setDefaultVar();

那么,我应该如何编写composer.json文件呢?

好的,让我们这样做。。。

a)composer.json文件的语法无效

可以使用CLI上的命令composer validate composer.json检查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"]
}
}

因此,最后,库类的"PSR-4自动加载"和一个特定文件的"文件自动加载"的完整示例如下所示:

{
"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"]
}
}

相关内容

  • 没有找到相关文章

最新更新