我目前正在尝试将我通过 Composer 创建的一些类自动加载到我拥有的一些旧代码中。
我目前的文件夹结构非常简单,只有以下内容:
/src
-
搜索者.php
-
身份验证器.php
作曲家.json
索引.php
我有更多的文件,但这些是重要的。然后我在两个类中添加了以下内容:
namespace ApiReddit;
我的作曲家.json如下:
{
"require": {
"guzzlehttp/guzzle": "^6.2",
"adoy/oauth2": "^1.3",
"twig/twig": "^1.30"
},
"autoload": {
"psr-4": {"ApiReddit\": "src/"}
}
问题是现在我的搜索器.php以前工作的文件出现了一些问题。在代码的执行中,我有以下调用:
$client = new GuzzleHttpClient([
'headers' => ['User-Agent' => 'testing/1.0'],
'verify' => false]);
}
现在生成以下错误:
致命错误:在 中找不到类"ApiReddit\GuzzleHttp\Client"
这意味着使用新命名空间会破坏我对其他作曲家加载包的调用。关于如何解决这个问题的任何想法?
您可以执行以下两项操作之一:
在搜索器文件中导入类时要明确
use GuzzleHttpClient;
class Searcher {
...
}
或在直接调用时转义类:
$client = new GuzzleHttpClient([
'headers' => ['User-Agent' => 'testing/1.0'],
'verify' => false]);
}
看起来问题是您使用的是相对命名空间。尝试更改:new GuzzleHttpClient
到 new GuzzleHttpClient
。问题应该得到解决。