Replace HttpClient php-curl-class transport with native curl adapters
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- php
- Ambito
- backend, networking
Direzione di ricerca
Inizia leggendo l’adattatore HttpClient esistente e il refactoring della factory, inclusi gli entry point di HttpClientFactory e gli unit test esistenti di HttpClient. Tratta gli adattatori per richieste singole e multi/async come ticket figli separati; il lavoro è completato quando le API pubbliche sono stabili, il comportamento di request e callback è validato e php-curl-class viene rimosso solo dopo che entrambi gli adattatori hanno superato i controlli di parità.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Follow up the HttpClient adapter/factory refactor by replacing the php-curl-class/php-curl-class transport behind Quantum-owned adapters with native curl implementations, while preserving the public HttpClient facade, factory methods, helpers, and adapter contracts introduced in the previous work.
This is an umbrella ticket. The implementation should be split into adapter-specific child tickets so the simpler single-request adapter can be validated separately from the higher-risk multi-request behavior.
Goals
- Keep the public
HttpClientAPI stable. - Keep
HttpClientFactoryand helper APIs stable:HttpClientFactory::createRequest()/httpRequest()HttpClientFactory::createMultiRequest()/httpMultiRequest()HttpClientFactory::createAsyncMultiRequest()/httpAsyncMultiRequest()
- Replace vendor-backed internals adapter by adapter.
- Remove
php-curl-class/php-curl-classonly after both native adapters have acceptable parity. - Avoid leaking raw native curl handles through the public facade.
Child Tickets
- Native
CurlAdapterimplementation for single requests. - Native
MultiCurlAdapterimplementation for multi and async requests.
Acceptance Criteria
- Child tickets are completed and validated independently.
- Existing HttpClient unit tests continue to pass.
- Downstream single-request usage such as remote image downloads continues to work.
- Multi-request callback behavior is covered before removing the dependency.
php-curl-class/php-curl-classis removed from Composer only after native single and multi adapters are both complete, reviewed, and validated.
Notes
The multi-curl adapter is the risky part because queueing, callbacks, request IDs, headers, cookies, options, errors, and response aggregation all need behavior parity. Do not treat dependency removal as complete after only the single-request adapter is native.
- Lingua principale
- PHP
- Stelle
- 36
- Fork
- 22
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di quantum-php/framework
-
routing testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
quantum-php/framework#547 ·
-
view
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
quantum-php/framework#542 ·
-
components view
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
quantum-php/framework#551 ·
-
Add explicit @version special route token support for API major versioning within a single module Apertarouting
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
quantum-php/framework#550 ·
-
lang routing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
quantum-php/framework#549 ·
Tutte le issue di quantum-php/framework
Issue simili
-
sync-en
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
-
sync-en
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
-
Перевод устарел
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100