Replace HttpClient php-curl-class transport with native curl adapters
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- php
- Área
- backend, networking
Línea de trabajo
Empieza leyendo el adaptador HttpClient existente y la refactorización de la factory, incluidos los puntos de entrada de HttpClientFactory y las pruebas unitarias existentes de HttpClient. Trata los adaptadores de solicitud única y multi/asíncrono como tareas secundarias separadas; se considera terminado cuando haya APIs públicas estables, un comportamiento de request y callback validado, y php-curl-class se elimine solo después de que ambos adaptadores superen las comprobaciones de paridad.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- PHP
- Estrellas
- 36
- Forks
- 22
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de quantum-php/framework
-
routing testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
quantum-php/framework#547 ·
-
view
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
quantum-php/framework#542 ·
-
components view
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
quantum-php/framework#551 ·
-
Add explicit @version special route token support for API major versioning within a single module Abiertorouting
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
quantum-php/framework#550 ·
-
lang routing
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
quantum-php/framework#549 ·
Todos los issues de quantum-php/framework
Issues similares
-
sync-en
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
-
sync-en
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
-
Перевод устарел
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100