
- بواسطة x32x01 ||


في عالم البرمجة، خصوصًا لما تتعامل مع الـ APIs، أكيد سمعت عن أداة قوية اسمها cURL. لكن هل كنت تعرف إنها بتقدر تبعت طلبات متعددة في نفس الوقت (Multiple Requests)؟

خلينا نفهم كل حاجة بالتفصيل

يعني إيه cURL أصلاً؟
الـ cURL هي أداة ومكتبة مفتوحة المصدر بتسمحلك تبعت طلبات HTTP/HTTPS لأي سيرفر خارجي من خلال الكود.ببساطة، تقدر تجيب بيانات من موقع، أو تبعت بيانات لسيرفر، أو تتعامل مع APIs بكل سهولة.

- PHP (الأشهر في التعامل مع APIs)
- Python
- JavaScript (Node.js)
- C وC++ وغيرهم
وفي PHP بالذات، تعتبر cURL الحل السهل والاحترافي لإرسال واستقبال البيانات.
ليه نستخدم cURL؟
- سهلة جدًا وتوفر دوال جاهزة للتعامل مع الطلبات.
- تقدر تتحكم في كل تفاصيل الطلب (Headers, Cookies, Timeout...).
- بتدعم الاتصال المشفر HTTPS.
- والأهم... إنها سريعة جدًا وبتدعم Multiple Requests!
المشكلة اللي بتحلها Multiple Requests
لو عندك 10 طلبات API مثلًا، والطريقة العادية (loop + curl_exec) هتخلي كل طلب يستنى اللي قبله يخلص

يعني الأداء هيكون بطيء جدًا وممكن كمان يحصل timeout.
لكن مع cURL Multi Interface، كل الطلبات بتتبعت في نفس الوقت!

وده معناه سرعة أعلى، وأداء أفضل، وتجربة مستخدم أنعم بكثير.
مثال عملي مبسط على Multiple Requests
PHP:
$urls = [
"https://api.example.com/data1",
"https://api.example.com/data2",
"https://api.example.com/data3"
];
$multiCurl = curl_multi_init();
$channels = [];
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($multiCurl, $ch);
$channels[] = $ch;
}
// تنفيذ كل الطلبات في وقت واحد
$running = null;
do {
curl_multi_exec($multiCurl, $running);
} while ($running);
// قراءة النتائج
foreach ($channels as $ch) {
$response = curl_multi_getcontent($ch);
echo $response;
curl_multi_remove_handle($multiCurl, $ch);
}
curl_multi_close($multiCurl);
إمتى تستخدم Multiple Requests؟
- لو عندك أكتر من API endpoint محتاج تتعامل معاهم في نفس الوقت.
- لو التطبيق بتاعك بيعتمد على سرعة الاستجابة (زي Dashboards أو Web Scrapers).
- لما تكون بتجلب بيانات كتير من سيرفرات مختلفة.
التعديل الأخير: