Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127761 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 184CF1A00BC for ; Thu, 26 Jun 2025 17:21:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1750958381; bh=iYdo9a9e6Guh9tfY/8vsYyi2urvQldBkGbqT9YcjH/k=; h=References:In-Reply-To:Reply-To:From:Date:Subject:To:Cc:From; b=ZUqxAlzeRY5Kos6BkzHpkn0SVY9hH/cmEPq8JuKu9I8LqvJl4oGyS2dw/nS4dVhlI 0QtfA/+E1+wXkUJC7fLuSxDsNn5uy+sxKckU4BYGbrTQxiypOmf+O5vnCtH9teAkLj mxgdJh2W9zdd5k951ID6WZzC54XR9IDgzfDdTIv/PDBdtoIDoRX9Lqstjh+bzf1nJ/ rJ1nc6sSbZp5WpdcFqTNGgFSPD00c+kdtv1oOqQhfz5fCWEqD/31LPbv50wcL+Mjk2 bkhUmXKy0VWjZ2NK7pAfO+2avhQ83VHuyeBbw1PYFicqBtfnzrz4od6v0CYMjZ0CTb 1MZMi93u9NTuQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id DDD181801ED for ; Thu, 26 Jun 2025 17:19:40 +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.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, FREEMAIL_REPLYTO,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 mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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, 26 Jun 2025 17:19:40 +0000 (UTC) Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-86cfc1b6dcaso41457739f.0 for ; Thu, 26 Jun 2025 10:21:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750958495; x=1751563295; darn=lists.php.net; h=content-transfer-encoding:cc:to:subject:message-id:date:from :reply-to:in-reply-to:references:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=iYdo9a9e6Guh9tfY/8vsYyi2urvQldBkGbqT9YcjH/k=; b=l6PtyfP0UdG29500ye9cZnh4+hRCeJkFJc3ijPHbKoVHTRbSU1pZ3Dwa1F4F3p4Qox LReXLhUXsXyx9yx9+DnGrndWJOgD6Mp5kDTpmbHVdHgrbJYCMSKEH+ByEnrGSCLAgLPp 74ssn2zKhTJjUoSxmx6plE98jf5PkAEjDJDrmdLUNbOmVeX0xk9mtNtzXLcQzzdwwYp0 rForP1gwsffnkhPEEIk8Vwrwbcg+ifgVv6KFk9nU/Rhfm6PAF7QYm0ZJSG64RGnLzdpX UBkOXuOZAaEvyixdhB2N3EM8svFFukSWyEOJyP2lQMCUjfv9ZPtg9nRNUd+WU3wptToN ME5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750958495; x=1751563295; h=content-transfer-encoding:cc:to:subject:message-id:date:from :reply-to:in-reply-to:references:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=iYdo9a9e6Guh9tfY/8vsYyi2urvQldBkGbqT9YcjH/k=; b=WNs1HbP7a2TmRlYWcJ7l6g4l3AlVfGNmszNif/mp9kGWct3fxGJQJIdvG6UJ3au0Bx owyyf9MalIfTRJG4yc7c36RBk2wA40UfqRwv9QSxoDDAsrhgn/UM9eM1y3KJ8zMMWwFI ovCnV/DHt9FqS6upd6P8klcUWY6j7oLLjRgOGKYVwTDJxJwkeMGtvAG+b4RlDwV56Tfx OAwKOV6kSKn82YX7HgW4Cpkhb7MtgGC0YlLQRAl87aSaBllLQ1Z144FuahQNqebTpuRt LdAHPqipRRx7lkD1YIizyfCTURa9/xIqRckaNelRLznSiSUZofH9/dyR87JKkxh2h5tk jhSQ== X-Gm-Message-State: AOJu0Yxxde+4vDulr3l+x94mYAJgN2djGjF8M9w/azvcBole3MZPlDzc beiutPzTrFaTnOmMasuU4ILBASf4Ifm+YYLfQbtmwq4qqHAeixj9W82BfzdSaGxuW8ul7VXeXbd XCu6ekYpNwRxowjOQbc9KT1e/egAHwe8LpW1+ X-Gm-Gg: ASbGncsMVYeV1l1fNamQcqv2dEVpvQqimi2d6HJuIQ6zePpX1wFhr84enk5CP5evtQp rSt87fKAP+dE3BPx7uaBLmVi932qrGXkVldUSviUwoIYhN8jy7CRV1TJN1E6yK+k5YwLzyByaij Ezwz8+MLFHn1t2iZ38Hc0SY2EPNSi3CyGNbfpDQ4vmriaqdrMZD9B+M4eKCTBUzERHT/2PJIAkM N/zAw== X-Google-Smtp-Source: AGHT+IE2bZ9uTmmDLKDhUSJePfJlUTYmlGEyvrAoWJ+7TMdAtPQCBXqJH+gPrPecRIr1lucNnDRNCshoZurdb+8sGVU= X-Received: by 2002:a92:c246:0:b0:3dc:8423:5440 with SMTP id e9e14a558f8ab-3df4aac5aebmr3441025ab.0.1750958495087; Thu, 26 Jun 2025 10:21:35 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 References: In-Reply-To: Reply-To: erictnorris@gmail.com Date: Thu, 26 Jun 2025 13:21:19 -0400 X-Gm-Features: Ac12FXzbKOYkg68c44ddr8q5sEed_1PQe8q8FUpTvqAjs78zzOhH0e2mNoT2dV0 Message-ID: Subject: Re: [PHP-DEV] [RFC][DISCUSSION] Object-oriented curl API v2 To: Ben Ramsey Cc: PHP Development Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: eric.t.norris@gmail.com (Eric Norris) > 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. > > 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 (Apologies for the double-post Ben, I'm a little rusty and forgot to reply-= all) I see, thanks for your feedback! To clarify, I am not aiming to produce a high-level API for curl. I would expect that most users would still reach for libraries like Guzzle, etc. I know that in the prior discussion, Rowan Tommins had a vision for a high-level API (https://externals.io/message/122371#122424), but I share your sentiment that this would be difficult to get right in core. I'd prefer to aim for a (mostly) direct translation of the low-level API, which I think still has benefits on its own.