【问题标题】:CakePHP HTTP Client default proxy settingsCakePHP HTTP Client 默认代理设置
【发布时间】:2023-04-09 04:25:01
【问题描述】:

我的应用程序正在工作中的代理后面运行。为了让 CakePHP HTTP 客户端工作,我必须传入我的代理设置。每次创建新的 HTTP 客户端时,我都会传入代理设置。

$http = new Client([
      "proxy" => [
        "proxy" => "MYPROXYURL",
        "username" => "MYUSERNAME",
        "password" => "MYPASSWORD"
      ]
]);

有没有办法将这些设置设为默认设置,以便让我的代码更加干燥?我希望这可以在引导设置中完成,但如果必须,我可以扩展 Cake\Http\Client 类并使用自定义包装器。如果我这样做了,哪个文件夹最适合放置我的自定义 Cake 类?

【问题讨论】:

    标签: php http cakephp proxy cakephp-3.0


    【解决方案1】:

    创建您自己的客户端类YourClient extends Client。然后将配置直接放入$_defaultConfig 或在构造函数中放入Configure::read('App.http.client') 并从您的配置中读取代理值。

    namespace App\Http;
    
    use Cake\Http\Client as CakeClient;
    
    class Client extends CakeClient { /*...*/ }
    

    然后实例化您自己的类,而不是您以任何方式继承的核心类。

    【讨论】:

    • 谢谢,您建议使用什么目录来存储我的“YourClient”类?
    • 如果我必须从它扩展类,我通常会在我的应用程序中镜像核心命名空间,因此它将是App\Http\Client。对于更具体的东西,我引入了新的文件夹,比如App\Navigation,我也在App\Model\* 下放了很多东西,因为大多数东西都是与业务逻辑相关的,它是模型层的一部分。但归根结底,这是个人喜好的问题。我已经更新了我的答案。
    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多