我目前正在尝试将我通过Composer创建的一些类自动加载到我的一些旧代码中。
我当前的文件夹结构非常简单,只需以下内容:
/ SRC
Searcher.php
Authenticator.php
composer.json
的index.php
我有更多文件,但这些是重要的。然后我将以下内容添加到我的两个类中:
namespace ApiReddit;
我的composer.json如下:
{
"require": {
"guzzlehttp/guzzle": "^6.2",
"adoy/oauth2": "^1.3",
"twig/twig": "^1.30"
},
"autoload": {
"psr-4": {"ApiReddit\\": "src/"}
}
问题是,现在我以前工作的Searcher.php文件存在一些问题。在执行代码时,我进行了以下调用:
$client = new GuzzleHttp\Client([
'headers' => ['User-Agent' => 'testing/1.0'],
'verify' => false]);
}
现在生成以下错误:
致命错误:
中找不到“ApiReddit \ GuzzleHttp \ Client”类这意味着使用新命名空间会破坏我对其他编写器加载的包的调用。关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
你可以做以下两件事之一:
要么明确导入Searcher文件中的类
use GuzzleHttp\Client;
class Searcher {
...
}
或在直接致电时逃离课程:
$client = new \GuzzleHttp\Client([
'headers' => ['User-Agent' => 'testing/1.0'],
'verify' => false]);
}
答案 1 :(得分:1)
看起来问题是您正在使用相对命名空间。尝试将new GuzzleHttp\Client
更改为new \GuzzleHttp\Client
。问题应该解决。