Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:122384 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 130A01ADA70 for ; Thu, 15 Feb 2024 12:14:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1707999267; bh=vLedaotQmp0mmXVRob9uTqw+QcZ36YY3vcloxNygvkY=; h=Date:Subject:To:References:From:In-Reply-To:From; b=Xl72cdwMkjLsJiXM9GbGfDxgXoLc0kD4II4pXms7wElKyMQoSWvdOAkf38z4bpZ8p k8sU4rksaBXKs+I9pXzXmrsMH5S/266i/I/mD8BtVmCrPgnTcS/8CpKaP3CBHrELNr lNveNG9563q87/Q6VIPZnpNZhHEa+hH2GS7T3gdQ9dU0Y07B8rC0SMSSUJZiK0uXmW 9gf43tW6pUq+YEN0RRGSk43bXOFMsLgwHVcL495wkmXtVRoj4MmNBi1ucFjUtIjvH4 Cyt8FV213b8+suBwNyn9m/ilqwB4VuyMDDepdrKGGv2fGM4/sYho2VDlF3nsCao+P7 ZMW79J56LL3AA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id D5378180088 for ; Thu, 15 Feb 2024 04:14:26 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 15 Feb 2024 04:14:26 -0800 (PST) Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4121a8635a2so3595435e9.3 for ; Thu, 15 Feb 2024 04:14:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707999264; x=1708604064; darn=lists.php.net; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=eVaRNQsO/MJdFjeCp5KUuc3MuaL1Dje1IF9pY1VZSEY=; b=eiuCvfHmOWudYxsTwQmBUdgEyyEHa/knAmB5nYj3jgulJAADaIs7chWgSf9UUdkv+e MX9wVie0FeU6TYUTiLVn7iyJkUTbllPphv1u4LOg0cWrdoS9tqp5nFeUjWXuTEJPIjqN m9+kKJNhTME84RfPZWYZPoLRKWVBgckMsiQ2xsO5Cq93b0vr9aglJUWxO0yw/GJJWVvn 9mdk4tsb+LhqiAc9XkgI/YFkbxoPhyADAEp7Gt+eusVddq9xlbwsVC2eZQ17MAIl/3iK VxN63mc1JMSnjfoI57mfHQtGIICbFr8aXmqAK0+nS4LWcjbFE+7nVY9A95JVGdEeXOPo m4zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707999264; x=1708604064; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=eVaRNQsO/MJdFjeCp5KUuc3MuaL1Dje1IF9pY1VZSEY=; b=bf8vHntebURzaK3uo9OJzpU42xUg0nCrOca/v9ApvDbzt+/mAKNEqYqgi7FbvxPB5k UFSRDjU1F/1qaQYlv70J4FGgaTXVGISX+nqcY5RlBWZ1edBHPhK61hJPxdEzpamVZ3Db OHnNsolC01Pbp7zYR9P0NFrSPt1vGos/xKF7RqzM6OuV0is8dlAqJUWlJt6YL6SpsBmd zJltwFpmQB4WbMgPbfCIJB4Kd0XrNW4lQPZ+vaM3CaHoJS5QhuxYrnQoNVbQJ2700bn+ X85SGcE8pEMUXn+h2YmLKpO3/X5+gUJFbGuJGCRH70N+GZgVbNLpo0DrDr7rmsILcpjv W6KA== X-Gm-Message-State: AOJu0YzPOGCUZ1zgyHDbHX7UcJ+hXChYNm7KQzl3d8BUCdRCdmy7tP1l /JwPm5WRULmBNyCOus4vvDCy5NZO0zaA7v4xz4z13v/y+GIM5YtoBe1rTNR/ X-Google-Smtp-Source: AGHT+IFXxiIkSeBC81MpsQhUxfFarGzRlIlsH8dGPg30eyFSKDXCS7UjZClOVo/6XIidmCsnngg8tg== X-Received: by 2002:a17:906:c355:b0:a3b:aa21:a801 with SMTP id ci21-20020a170906c35500b00a3baa21a801mr1015041ejb.53.1707996074105; Thu, 15 Feb 2024 03:21:14 -0800 (PST) Received: from ?IPV6:2a02:a45e:66ed:1:2cb0:6608:9c5c:f499? (2a02-a45e-66ed-1-2cb0-6608-9c5c-f499.fixed6.kpn.net. [2a02:a45e:66ed:1:2cb0:6608:9c5c:f499]) by smtp.gmail.com with ESMTPSA id vh11-20020a170907d38b00b00a3cbbaf5981sm439861ejc.51.2024.02.15.03.21.13 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 15 Feb 2024 03:21:13 -0800 (PST) Message-ID: <0bd0a588-eb4c-4ea6-bc6f-837a38427f81@gmail.com> Date: Thu, 15 Feb 2024 12:21:12 +0100 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PHP-DEV] Re: [RFC] OOP API for cURL extension Content-Language: en-US To: PHP internals References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit From: dik.takken@gmail.com (Dik Takken) On 14-02-2024 19:47, Sara Golemon wrote: > Good afternoon folks, I'd like to open discussion on adding OOP APIs to the > cURL extension. > https://wiki.php.net/rfc/curl-oop > > This has been a long standing bug-bear of mine, and I think its time has > come. > > try { > (new \CurlHandle)->setOpt(YOUR_VOTE, true)->exec(); > } catch (\CurlHandleException $ex) { > assert(false); // Why not?! > } > > -Sara > I love the idea of an OOP API. Personally I use Python's Requests library a lot, it could offer some inspiration. I would really like to simply write: Curl::get('https://...', params: ['key' => 'value'])->json() Curl::post(...) ... Some more specific exceptions may be nice too, to easily differentiate between errors you might want to retry (network errors) and programming errors. Regards, Dik