【问题标题】:Class 'GuzzleHttp\Client' not found找不到类“GuzzleHttp\Client”
【发布时间】:2021-12-22 20:11:24
【问题描述】:

我第一次同时使用Guzzle 和 Codeigniter 3.0。我也承认我是第一次使用 php 命名空间。

我正在尝试根据文档中提供的示例使用 Guzzle 发出一个非常简单的获取请求。 (Guzzle 文档对 codeigniter 只字未提)。

Guzzle 文件位于 application/class/guzzle

这是我非常简单的控制器

public function indey () {

        $data = array();
        $data['main_content'] = "hiview";
        $data['title'] = "Data Analyzer - Welcome";
        $data['xas'] = $this->guzzler();
        $this->load->view('template', $data);
    }

    private function guzzler() {
        $client = new GuzzleHttp\Client;
        $response = $client->get('http://guzzlephp.org');
        return $response;
    }

这是我的简单看法

    <div class="row">
        <div class="col-xs-12">
             <h1>Hi</h1>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-12">
            <h1><?php var_dump($xas); ?></h1>
        </div>
    </div>

这是我遇到的错误

遇到 PHP 错误 严重性:错误 消息:找不到类“GuzzleHttp\Client” 文件名:控制器/hello.php 行号:22 回溯:

【问题讨论】:

  • 快速提问;为什么不使用 Composer 来管理 Guzzle?
  • 无法在 wamp 和 windows 7 上安装 Composer。尝试了安装程序和命令行 ...
  • 好的,这是一个不错的理由。 This 可能有助于设置作曲家,但不幸的是,我不熟悉 CodeIgniter 的设置方式。不过,它可能必须进入应用程序/库(并从那里由$this-&gt;load-&gt;library('GuzzleHttp') 或类似的东西加载)
  • 感谢作曲家设置链接克里斯......是的,我正在尝试找出“类似的东西”:)
  • @ChrisForrence ...您的作曲家设置链接真的很有帮助...谢谢:)

标签: php codeigniter guzzle


【解决方案1】:

application/config/config.php

$config['composer_autoload'] = FCPATH.'vendor/autoload.php';

对我来说很好用

【讨论】:

  • 非常感谢你帮了我很多!
【解决方案2】:

您应该在需要时将它加载到控制器方法中,或者如果需要,自动加载它。我使用前者: 首先:使用应用程序文件夹中的composer安装它:

composer require guzzlehttp/guzzle:~6.0

第二:让CI自动加载composer(applications/config/config.php)

$config['composer_autoload'] = TRUE;

然后在你的控制器中

 public function guzzler_get($url, $uri)
{    
    $client = new GuzzleHttp\Client(['base_uri' => $url]);
    $response = $client->get($uri);
    // print_r($response); // print out response

    // print out headers: 
    // foreach ($response->getHeaders() as $name => $values) {
    //    echo $name . ': ' . implode(', ', $values) . "\r\n";
    // }
    return $response;
}

用途:

$your_var = $this->guzzler_get('http://httpbin.org', '/html');

您现在在 $your_var 变量中获得了响应。其余的,请查看文档。否则,为您的 http 请求使用“更友好”的方法/库,例如 CodeIgniter-cURLRequests

【讨论】:

    【解决方案3】:

    我解决了在 .php 文件开头添加以下指令:

    require 'C:/php/vendor/autoload.php';
    

    但我不确定这是一个好习惯......

    【讨论】:

      【解决方案4】:

      添加它: require_once (DIR . "/vendor/autoload.php");

      【讨论】:

        猜你喜欢
        • 2015-09-22
        • 2019-08-29
        • 2017-11-29
        • 2017-04-08
        • 2019-01-23
        • 2020-04-22
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多