将 Guzzle 的客户端作为构造函数参数

Takes Guzzle's client as constructor argument

我创建了一个实现接口的客户端class。我需要将 Guzzle 的客户端作为构造函数参数,但我不能那样做。

<?php

namespace Payum\Core\Bridge\Psr\Http;

use GuzzleHttp\Client;
use Psr\Http\Message\ResponseInterface;

class Client implements ClientInterface
{
    $client = new \GuzzleHttp\Client(); // there is error 'Unexpected'

    public function  __construct($client)
    {

    }
    public function responeInterface()
    {

    }
}

您的客户端 class 有一个客户端 属性 需要在构造函数中初始化,而不是在其声明中。

我也没有看到你的 ClientInterface 是从哪里来的?是不是应该有一个导入接口的use语句???

如果此代码有帮助,请告诉我

<?php

namespace Payum\Core\Bridge\Psr\Http;

use GuzzleHttp\Client;
use Psr\Http\Message\ResponseInterface;

class Client implements ClientInterface
    {
        $client; 

    public function  __construct(Client $client)
    {
        $this->client = $client;
    }
    public function responeInterface()
    {

    }
}

然后您需要通过将 Guzzle 的实例传递给构造函数来实例化您的客户端 class。即

$guzzle = new \GuzzleHttp\Client();
$myClient = new Client($guzzle); // this is an instance of your class