Replace HttpClient php-curl-class transport with native curl adapters
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- php
- Lĩnh vực
- backend, networking
Hướng nghiên cứu
Bắt đầu bằng cách đọc adapter HttpClient hiện có và đợt refactor factory, bao gồm các entry point của HttpClientFactory và các unit test HttpClient hiện có. Hãy coi adapter single-request và multi/async là các ticket con riêng biệt; công việc được xem là hoàn tất khi các API công khai ổn định, hành vi request và callback được xác thực, và php-curl-class chỉ được loại bỏ sau khi cả hai adapter vượt qua các bước kiểm tra parity.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- PHP
- Star
- 36
- Fork
- 22
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của quantum-php/framework
-
routing testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
quantum-php/framework#547 ·
-
view
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
quantum-php/framework#542 ·
-
components view
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 42/100
quantum-php/framework#551 ·
-
Add explicit @version special route token support for API major versioning within a single module Đang mởrouting
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
quantum-php/framework#550 ·
-
lang routing
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
quantum-php/framework#549 ·
Tất cả issue của quantum-php/framework
Issue tương tự
-
sync-en
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
getgrav/grav-plugin-api#45 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
RSS-Bridge/rss-bridge#5098 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
phingofficial/phing#2025 ·