مرحبًا يا عشاق PHP! ؟ هل تتذكر ذلك الوقت الذي كنت تقوم فيه بالبرمجة في وقت متأخر من الليل، وتتصارع مع طلبات HTTP في PHP، وفكرت، "لو كان هذا الأمر سهلاً مثل جلب JavaScript"؟ حسنًا، تناول قهوتك واستعد لبعض الأخبار المثيرة، لأن FetchPHP 2.0 موجود، وهو على وشك جعل طلبات PHP HTTP الخاصة بك أكثر سلاسة من أي آلة جيدة التجهيز!
تصور هذا: إنه عام 2023، وأنا جالس في المقهى المفضل لدي، وأحتسي كوبًا كبيرًا جدًا من اللاتيه... لا، مجرد مزاح. كنت في الواقع في المنزل، غارقًا في جلسة Elden Ring، عندما جاءني الإلهام فجأة. فكرت "ماذا لو تمكنا من جلب بساطة JavaScript إلى عالم PHP؟" وهكذا، وُلدت خدمة FetchPHP. (لا تقلق، لقد أنهيت معركة الزعيم أولاً.)
ولكن هذا هو الشيء المتعلق بالإلهام - فهو لا يتوقف عند الإصدار 1.0. وبينما كنت أشاهد المطورين وهم يتبنون FetchPHP، أدركت أنه بإمكاننا أن نحقق تقدمًا أكبر. لذلك، حبست نفسي في كهف البرمجة الخاص بي (حسنًا، كان مجرد مكتب منزلي، ولكن بعد فترة شعرت وكأنه كهف)، تغذيه كمية غير صحية من مشروبات الطاقة، وخرجت مع FetchPHP 2.0.
اربط حزام الأمان، لأن هذا التحديث مليء بميزات أكثر من سكين الجيش السويسري! إليك ما يتم طهيه في الإصدار 2.0:
القوى العظمى الحقيقية غير المتزامنة : هل تتذكر عندما شعرت أن المزامنة في PHP تبدو وكأنها تحاول تشغيل ماراثون في زحافات؟ لقد ولت تلك الأيام! يعمل FetchPHP 2.0 على تعزيز ألياف PHP (بفضل الحزمة الشقيقة لدينا، Matrix) لتوفير التزامن الحقيقي غير المحظور. إنه مثل إعطاء الكود الخاص بك زوجًا من الأحذية الصاروخية! تعمل Matrix، وهي حزمة صممتها بنفسي، على تبسيط إدارة المهام غير المتزامنة من خلال استخدام PHP Fibers. باستخدام Matrix، يستطيع FetchPHP تشغيل مهام غير متزامنة بشكل لم يسبق له مثيل.
مطورو جافا سكريبت، اشعروا وكأنكم في المنزل: لقد قدمنا صيغة غير متزامنة ()/تشبه الصيغة التي ستجعل مطوري جافا سكريبت يشعرون وكأنهم لم يغادروا المنزل أبدًا. إنها مألوفة جدًا، وقد تنسى أنك تكتب لغة PHP!
واجهة برمجة التطبيقات السلسة للفوز : أصبحت طلبات البناء الآن أكثر سلاسة من فن اللاتيه المفضل لديك. طرق متسلسلة مع واجهة برمجة التطبيقات الجديدة لدينا، المستوحاة من عميل HTTP الخاص بـ Laravel. إنه أنيق جدًا، فهو يكتب نفسه عمليًا!
معالجة الأخطاء على المنشطات : مع ErrorHandler الجديد القابل للتخصيص، لم تعد إدارة الأخطاء بمثابة كابوس. قم بإيقاف المهام مؤقتًا أو استئنافها أو إعادة المحاولة أو إلغائها بسرعة. إنه مثل وجود آلة زمنية لطلبات HTTP الخاصة بك!
Guzzle Who؟: بينما لا نزال نرفع قبعاتنا إلى Guzzle (إنه يدعم طلباتنا المتزامنة تحت الغطاء)، فإن FetchPHP 2.0 يأخذ الأشياء إلى مستوى جديد تمامًا. يبدو الأمر كما لو أننا أخذنا Guzzle إلى صالة الألعاب الرياضية وأطعمناه بعض السبانخ وعلمناه حيلًا جديدة!
هل تتذكر كيف كنا جميعًا في الإصدار 1.0 متحمسين لتقديم طلبات بسيطة؟ حسنًا، احتفظ بلوحات المفاتيح، لأن FetchPHP 2.0 جاهز للتعامل مع السيناريوهات المعقدة مثل المحترفين. دعونا نلقي نظرة على بعض الأمثلة التي ستجعلك ترغب في إعادة كتابة كل منطق HTTP الخاص بك (لا تقلق، لن نحكم عليك إذا فعلت ذلك):
// Async request with all the bells and whistles async(fn () => fetch() ->baseUri('https://api.coolstartup.com') ->withHeaders(['X-API-Key' => 'supersecret']) ->withBody(json_encode(['feature' => 'awesome'])) ->withProxy('tcp://localhost:8080') ->timeout(5) ->retry(3, 1000) ->post('/unicorns')) ->then(fn ($response) => processUnicornData($response->json())) ->catch(fn ($e) => logUnicornError($e));
انظروا إلى هذا الجمال! إنها تتعامل مع الوكلاء، وإعادة المحاولة، والمهلات، والمزيد، كل ذلك مع الحفاظ على عدم التزامن والمظهر الرائع.
الآن، أعرف ما تفكر فيه. "لكنني أستخدم Guzzle منذ سنوات! لماذا يجب علي التبديل؟" حسنًا، استعدوا، لأننا على وشك التعمق في سبب كون FetchPHP 2.0 هو البطل الجديد الثقيل لعملاء PHP HTTP.
إليك مقارنة سريعة لتوضيح هذه النقطة:
// Guzzle $promise = $client->requestAsync('GET', 'http://httpbin.org/get'); $promise->then( function ($response) { echo 'I completed! ' . $response->getBody(); }, function ($exception) { echo 'I failed! ' . $exception->getMessage(); } ); // FetchPHP // using async/await syntax async(fn () => fetch('http://httpbin.org/get')) ->then(fn ($response) => echo 'I completed! ' . $response->body()) ->catch(fn ($e) => echo 'I failed! ' . $e->getMessage()); // or directly using the ClientHandler class use Fetch\Http\ClientHandler; (new ClientHandler()) ->async() ->get('http://httpbin.org/get');
هل ترى الفرق؟ يجلب FetchPHP أناقة JavaScript الحديثة إلى عالم PHP، كل ذلك مع الحفاظ على القوة والمرونة التي تحتاجها للتطبيقات المعقدة.
تخيل أنك قائد فرقة موسيقية، وطلبات HTTP الخاصة بك هي الأوركسترا الخاصة بك. مع Guzzle، أنت تقوم بعمل رائع، ولكن يقتصر الأمر على العزف على آلة واحدة في كل مرة. جلب PHP 2.0؟ إنه يحولك إلى مايسترو، يقود سيمفونية كاملة من الطلبات غير المتزامنة، حيث يعزف كل منها في تناغم تام.
هذا هو السبب في أن FetchPHP 2.0 هو عميل HTTP الذي لم تعلم أبدًا أنك بحاجة إليه:
FetchPHP 2.0 ليس مجرد تحديث؛ إنها ثورة في كيفية تعاملنا مع طلبات HTTP في PHP. سواء كنت تقوم بإنشاء واجهة برمجة تطبيقات صغيرة أو نظام واسع النطاق يحتاج إلى التعامل مع الآلاف من الطلبات المتزامنة، فإن FetchPHP 2.0 يدعمك.
إذن، هل أنت مستعد للانضمام إلى ثورة المزامنة؟ انتقل إلى مستودع GitHub الخاص بنا، وأعطنا نجمة (نحن نحب ذلك!)، وابدأ في جعل تطبيقات PHP الخاصة بك أسرع وأكثر كفاءة، وأجرؤ على القول، أكثر متعة في العمل بها!
تذكر، في عالم FetchPHP 2.0، الحد الوحيد هو خيالك (وربما موارد الخادم الخاص بك، ولكن هذه مشكلة ليوم آخر).
أتمنى أن تكون طلباتك غير متزامنة على الإطلاق! ?✨
ملاحظة: إذا واجهت أية مشكلات أو كانت لديك أفكار لجعل FetchPHP أكثر روعة، فلا تتردد في فتح مشكلة أو إرسال طلب سحب. دعونا نجعل عالم PHP مكانًا أفضل، بطلب واحد في كل مرة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3