Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127763 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 lists.php.net (Postfix) with ESMTPS id 2E54E1A00BC for ; Thu, 26 Jun 2025 19:01:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1750964387; bh=IDJbvCjHyRLi032VCJE7eeVue75j3oxs7U3ba4ba108=; h=Date:From:To:In-Reply-To:References:Subject:From; b=I8Cbi1yI4+PV25ACSVkJA9xOoZtMKT77opRp2I9VZFcmNam6dudUO/jmd9JVke7PY QUVlw5EpaHE1QJN6nI6Y0onqQZo/68hI1b8uTDYvdxy2CTL9QGSDMDKV7Z15EnId85 X7lVqrk3QtKyTCpemjjQ7BAQiImgoEhKFob0X74/nYBOxD8J6x0NMbT0Sk43hb727o GWjtJpgarQwBZxlmY9tNe2/r+gS5x0itgntWqCppIdkDxzTaiVsO2KwN5GVbJuojoq RcOKWBwuLk81HPawrvrQQnFc7MLK8IJZpg+O8EopSY/OzHyIqK3Ckeez52XE2R2yU4 udKoKQVYiS6dg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2F3E5180088 for ; Thu, 26 Jun 2025 18:59:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.187]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 26 Jun 2025 18:59:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thomasbley.de; s=s1-ionos; t=1750964499; x=1751569299; i=mails@thomasbley.de; bh=oFEfc+CMN/yD2ingKVqcJqHj9Nhcpx6g44MzqUg6Ob0=; h=X-UI-Sender-Class:Date:From:To:Message-ID:In-Reply-To:References: Subject:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=hBhE2Tga9RX5IofQmCtB3WSrd4hkB1ur6sTuy6ItFs53fBL+nSh4YPmQ1yxEwSzi PtJU9qs6q+aF9gfr5HLD2EVL2xuL3RsyQJ1x7MAdC2uoGP78ve6CtIGcRYN5aX6Y4 tsqeeGeAqQd8hbGSopq1A4EXfzGUp72cPupj+XUli3FjzWMxDWN1YBsy/fz0EJXpM Lq4/hbGv9hnk9ty7maqizGoMHukuYxk4a5z3CtbjmNPNUfMEQtKZrYDsb5wkUzOv5 lT578IyfWY1z1CiUHF3qvAHTt+w+jxn9LURtioGEkCejg3vmAlLUwwFzNMwiJ7psV gJRHHiFK47BxI4tn4w== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Received: from open-xchange-core-mw-default-25.open-xchange-core-mw-hazelcast-headless.open-xchange.svc.cluster.local ([10.73.157.158]) by mrelayeu.kundenserver.de (mreue011 [172.19.35.3]) with ESMTPSA (Nemesis) id 1Mr8zO-1v7nm92qrW-00l4I8; Thu, 26 Jun 2025 21:01:39 +0200 Date: Thu, 26 Jun 2025 21:01:39 +0200 (CEST) To: Ben Ramsey , PHP Development Message-ID: <1122008041.435869.1750964499516@email.ionos.de> In-Reply-To: References: Subject: Re: [PHP-DEV] [RFC][DISCUSSION] Object-oriented curl API v2 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_435868_1186293534.1750964499514" X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v8.36.54 X-Originating-Client: open-xchange-appsuite X-Provags-ID: V03:K1:0j/8y0uwsnZNwcg4LTv3x3tXRrz2AQbwQ6eb7rvYM2RBmPVcxbY aj9RZ1k2XzEfv+J+Se987CWwkSJJh07HPBXY66GAKUtfnt91sM3vO2Y2XJbXHaZPo4dI1BQ p27hHqWgiJhhzfBu1yRK3wMkWEGwBguSEJwJj3grv6A/U+TXpTrP1fxGqPkRwnEJyXf2r+v rg6GpRFzwgH+59gMQtUFQ== UI-OutboundReport: notjunk:1;M01:P0:1xdxgP80+/g=;YHZTQtQQtEjQHFO7idNNg/yAXUM 7vP84RYnSqnAJODlg/dAhW5Wsp1Llv9d/N1RyHEjd63eWF6XutKd/uDqPtUJUuN554Ex1vj2p TsyXh3yZ6NDAaDwCvf72a5mtwtdKSk8tSqftbyq/3hjQm+gBKEIaC6FzG/Cd6IGs39K9SezMz jXtLMjZ/ap3JS2i2/ug1WrHXgPu99KObSYFmOdX9LYArFNYkI15kwRO6NV2UaRRo/Js/Vk+KQ 9GtZA6/CKgxCDnlKqvlB2jhRncd7JDDoFwNMnc/3aDwskCOlA/P9LvSvyQE8KTzR3VQ6ylDpR llUnBETBu5mep6f5NqQUK1omhOc39XnljIrCBqmP8xixLdYxxtA9NlM/k779fqN5v10HevoHl jY2juIuAipy5h/xlJdI5v9gA9kGPiE6t3ngBi6hmjpimJkAqanS32vFJpFD5+Ur8UH+2TYNy6 VCD+FmndpuvzcZ4mjJXLjvdERacZP8s12hrIx/zK1rbSZm2RqK68qVWB10SJzXC9gib7OeivK ZbU0/XJnbOOJ5kmQ8yTR45VRCgvEX7wfWtIlmrBAk0yQa3eii0hlO80PRpFMPr6nc5p4Oepzy Nzb1kt6+wJaTKAG6haDAt0aqQVs6GRgFYI+7vfvN6EkSxMNKELNP2SyusCZMEdlDm11Y7kAEV xj5GZiaBe4YjXDLwBAwY7UCnYzVG0FaL4hIDXESZPX35QGu+/xhBUVIHA22ElEQAEQ8uC06vF 58f4NOxXl4ty4AKUr/UDEcQREL367Lv5wdHkf7OYdtSeB8t/7zZOam5wrV+StfALh6CibmOTL fLHxEg3ItMlR+1h0ZBTOa2cQbXdJ1brKM2vnr/Q7iCbw5rY+BS43WYxIYrR+UoFBIXK6KkFzf iqqeyXTiwrOnoSda69WuoHAFgD0RUSrI1lhEnsmcJnsP4kVzJHRIRtzslcO95tPvM4MlSD008 MDypVNrKwumMk/XrejoRHkGLWcmfc8+l4qmMln2EM/ox0y6cth0M6qRePnQElhxlUHDPawfcx AOmXr8tfFqQwlOmpk62IVHj0F5kanWxJXZ3N+eVjNRaN962XDGdtVDKXrbOatO+Gmx3EmOqGT jFKy9XAqalZOM7r3sc/VK7yVNGh3PiMuutmkRKyGPsCnLJAHMMyyBy9lEzQ4/Rvmi9U/Dvnik wAQcsWqXb4cZimKr6ud0GscgJQqY6un+q1XyN8RvI3PtOXzZLnEDgWah82DgHzIGzXi7DKyth dYrsIkWnfXkZOUKIsmZQz/kt/kgqvkiVHtPNWdlxIPccnS5vxEr4GqqFdeQcy/TKi2gZhS5Uy 6AR2i06WJmuKZq7rUEQKbDI8ETlqBv/tlxJvtedAHHhQhCGLFD1yw/o/v/OVPiB2LYYXQT+ZX envW18D9x+BzdfxZn42GjIJDbhMo6mE+9EGKBX3lBpNjLXLUxpwqYA3kOJUQZ2+Z+XwWYf0Tr l27Jwd3IqUt4oAFVjcg2iZ9aIwQv1gnZBG+PZGAWFhggEfY3VbGXHakO7cp9/zvYIQdCkw1NS tLxwmRgoQd1oLN+bObYaAEsyfXZGJ0uSiugZNW57 From: mails@thomasbley.de (Thomas Bley) ------=_Part_435868_1186293534.1750964499514 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable =20 > Ben Ramsey hat am 26.06.2025 18:54 CEST geschrieben: > =20 > =20 > On Thu, Jun 26, 2025 at 11:27 Eric Norris wrote: >=20 > > Hello Internals, > >=20 > > I'd like to formally propose a restart of the original object-oriented > > curl API RFC (https://wiki.php.net/rfc/curl-oop): > >=20 > > https://wiki.php.net/rfc/curl_oop_v2 > >=20 > > The prior RFC seemed to get positive feedback, with a small consensus > > around wanting enum(s) for curl options. I've taken that feedback and > > incorporated it into a new RFC, as I am not the original author, but I > > am interested in making another potential improvement to the curl > > extension. > >=20 > > In a nutshell, this version of the RFC: > >=20 > > - uses enumerations for curl options and other curl constants > > - introduces a new Curl namespace > >=20 > > I have not yet created an implementation PR. I realize that is > > somewhat discouraged, but I believe that this should be relatively > > straightforward to implement (there's also the previous RFC's PR to > > build on top of). The implementation of this RFC as it is now will > > likely be tedious, however, so I'd like to get feedback on the > > enumeration idea before committing to the work. > >=20 > > I've outlined one open question in the RFC, which relates to the above: > >=20 > > - Should we organize the curl option enumerations by value type? Or > > have a single enumeration for all curl_setopt options and another for > > all curl_multi_setopt options? > >=20 > > If others (including the original RFC author) are interested in > > working with me on this, I'm more than open to that, so please let me > > know. > >=20 > > Thanks, > > Eric > >=20 > =20 > =20 > IMO, this sounds like something that would be great to start as a userlan= d OOP wrapper for cURL, where it can be iterated on and the interface can b= e tested and changed much quicker. Then, maybe proceed to an external exten= sion that can be migrated into core later, once its interface is stable. > =20 > cURL is massive, and there are a lot of moving parts. I wouldn=E2=80=99t = expect to get the API correct on the first try. :-)=20 > =20 > Cheers, > Ben >=20 see: https://github.com/phpcurl/curlwrapper ------=_Part_435868_1186293534.1750964499514 MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
 
Ben Ramsey <ramsey@php.net> hat am 26.06.2025 18:54 CEST geschrie= ben:
 
 
On Thu, Jun 26, 2025 at 11:27 Eric Norris <eric.t.norris@gmail.com> wrote:
Hello Internals,

I'd like to formally propose a restart of the original object-oriente= d
curl API RFC (https://wiki.php.net/rfc/curl-oop):

https://wiki.php.net/rfc/curl_oop_v2

The prior RFC seemed to get positive feedback, with a small consensus
around wanting enum(s) for curl options. I've taken that feedback and
incorporated it into a new RFC, as I am not the original author, but = I
am interested in making another potential improvement to the curl
extension.

In a nutshell, this version of the RFC:

- uses enumerations for curl options and other curl constants
- introduces a new Curl namespace

I have not yet created an implementation PR. I realize that is
somewhat discouraged, but I believe that this should be relatively
straightforward to implement (there's also the previous RFC's PR to
build on top of). The implementation of this RFC as it is now will
likely be tedious, however, so I'd like to get feedback on the
enumeration idea before committing to the work.

I've outlined one open question in the RFC, which relates to the abov= e:

- Should we organize the curl option enumerations by value type? Or
have a single enumeration for all curl_setopt options and another for
all curl_multi_setopt options?

If others (including the original RFC author) are interested in
working with me on this, I'm more than open to that, so please let me
know.

Thanks,
Eric
 
 
IMO, this sounds like something that would be great to start as a use= rland OOP wrapper for cURL, where it can be iterated on and the interface c= an be tested and changed much quicker. Then, maybe proceed to an external e= xtension that can be migrated into core later, once its interface is stable= .
 
cURL is massive, and there are a lot of moving parts. I wouldn=E2=80= =99t expect to get the API correct on the first try. :-) 
 
Cheers,
Ben
see: https://github.com/phpcurl/curlwrapper
------=_Part_435868_1186293534.1750964499514--