PHP-如何使用Composer设置文件加载顺序?
作者:互联网
文件目录为:
$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文件?
解决方法:
好吧,让我们做…
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)自动加载问题
由于语言障碍,您的问题有点难以理解,但是
我的理解是这样的:您想始终加载库的一个文件,因为它使用静态函数来初始化一些值,对吗?
我建议在这种情况下使用文件自动加载机制.它将在每个请求(!)上明确要求某些文件. (当您的程序包包含无法由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"]
}
}
标签:composer-php,php 来源: https://codeday.me/bug/20191118/2029180.html