我正在尝试使用composer和codeigniter来使用此( )库。但我收到了以下错误:
Type: Error
Message: Class 'GuzzleClient' not found
Filename: /var/www/html/test/application/libraries/Ethereum.php
Line Number: 7
以下是我的图书馆代码:
<?php
class Ethereum
{
public function __construct()
{
$httpClient = new GuzzleClient(new GuzzleClientFactory(), 'localhost', 8545);
$client = new Client($httpClient);
return $client;
}
}
由于其他依赖项工作正常,因此Composer很受欢迎。无法找出问题所在。请帮忙
答案 0 :(得分:0)
使用Composer时,您通常必须包含autoload.php
文件。您还需要为Composer依赖项使用名称空间。
通常vendor
目录与application
处于同一级别,因此定义一个指向供应商目录的常量非常方便。
define('VENDOR', substr(FCPATH, 0, strpos(APPPATH, 'application/')) . "vendor/");
您的图书馆可能需要看起来更像这样。
<?php
require VENDOR . 'autoload.php';
//I'm not certain this is the correct namespace but hopefully you get the idea
use Achse\GethJsonRpcPhpClient;
class Ethereum
{
protected $httpClient;
protected $client;
public function __construct()
{
$this->httpClient = new GuzzleClient(new GuzzleClientFactory(), 'localhost', 8545);
$this->client = new Client($httpClient);
}
//example using the class property $client
public getResult()
{
return $this->client->callMethod('eth_getBalance', ['0xf99ce9c17d0b4f5dfcf663b16c95b96fd47fc8ba', 'latest']);
}
}