PHP Microservice Framework: إصدار Swoft v2.0.7 في الموعد المحدد


ما هو Swoft؟


Swoft هو إطار PHOTO microservice عالي الأداء. تم نشره لسنوات عديدة وأصبح الخيار الأفضل لـ php. يمكن أن يكون مثل Go ، خادم الويب coroutine المدمج والعميل coroutine المشترك ويقيم في الذاكرة ، مستقلة عن PHP-FPM التقليدية. هناك عمليات مماثلة للغة Go ، مشابهة للشروح المرنة لإطار Spring Cloud.


من خلال ثلاث سنوات من التراكم واستكشاف الاتجاهات ، جعلت Swoft Swoft the Spring Cloud في عالم PHP ، وهو أفضل خيار لإطار PHP عالي الأداء وإدارة الخدمات الصغيرة.


جيثب


https://github.com/swoft-cloud/swoft


Swoft v2.0.7


يواصل Swoft v2.0.7 الإبحار على v2.0.6 وقد تم استخدامه في عدد كبير من عمليات الإنتاج ، والتي تم الاعتراف بها ودعمها من قبل العديد من المستخدمين. حققت النسخة الرسمية الكثير من التحسينات والتحسينات ، مع أداء أفضل.


  • مكون وظيفة جلسة Http المضافة ، يوفر إدارة جلسة HTTP ، ويدعم العديد من برامج تشغيل التخزين
  • طلب دعم خادم TCP محسّن لإضافة طريقة وسيطة عامة أو مقابلة
  • طلب خادم Websocket محسّن طلب دعم لإضافة الوسيطة طريقة عالمية أو مقابلة

جلسة المتشعب


تثبيت مكون swoft / الجلسة مع الملحن


  • composer require swoft/session تنفيذ composer require swoft/session في الدليل حيث يوجد composer.json المشروع.
  • أضف Swoft\Http\Session\SessionMiddleware Middleware إلى الوسيطة العمومية

في app/bean.php :


  'httpDispatcher' => [ // Add global http middleware 'middlewares' => [ \Swoft\Http\Session\SessionMiddleware::class, ], ], 

يعتمد الإعداد الافتراضي على برامج تشغيل الملفات المحلية ، المحفوظة في دليل runtime/sessions

أكثر على السائق بحاجة فقط لتكوين handler المقابلة.
على سبيل المثال ، قم بتكوين برنامج التشغيل Redis :


 'sessionHandler' => [ 'class' => RedisHandler::class, // Config redis pool 'redis' => bean('redis.pool') ], 

Websocket المراسلة الوسيطة


  • الوسيطة العالمية

مكون في app/bean.php :


  /** @see \Swoft\WebSocket\Server\WsMessageDispatcher */ 'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ], 

  • يتصرف على وحدة تحكم

 /** * Class HomeController * * @WsController(middlewares={DemoMiddleware::class}) */ class TestController {} 

طلب TCP الوسيطة


  • الوسيطة العالمية

مكون في app/bean.php :


  /** @see \Swoft\Tcp\Server\TcpDispatcher */ 'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ], 

  • يتصرف على وحدة تحكم

 /** * Class DemoController * * @TcpController(middlewares={DemoMiddleware::class}) */ class DemoController { // .... } 

تحديث السجل


نصائح الترقية:
  • Swoole\WebSocket\Server::push تم تغيير المعلمة الرابعة $finish إلى كتابة int بعد swoole 4.4.12 .
  • TcpServerEvent::CONNECT معلمة الحدث TcpServerEvent::CONNECT لخادم tcp هي نفسها كما تلقي وإغلاق. $fd, $server مواقف تبادل $fd, $server .


جيثب


https://github.com/swoft-cloud/swoft


ثابت :


  • عند تحديد حقن التكوين ، إذا لم يتم العثور على القيمة ، سيتم استخدام القيمة الافتراضية للنوع المقابل لتجاوز السمة ، مما يؤدي إلى الكتابة فوق القيمة الافتراضية للسمة d84d50a7
  • تم إصلاحه عند استخدام جدول الرسائل في خادم ws ، لم تتم تصفية أي بيانات فارغة ، مما أدى إلى استجابة واحدة أخرى. تجنب طريقة swoft-cloud / swoft # 1002 [d84d50a7] ( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commits / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
  • تم إصلاحه عند استخدام جدولة الرسائل في خادم tcp ، ولم تتم تصفية أي بيانات فارغة ، مما أدى إلى استجابة واحدة أخرى. 07a01ba1
  • تم إصلاح تبعيات مكتبة swoft / stdlib المفقودة عند استخدام مكون وحدة التحكم بشكل مستقل c569c81a
  • ثابت ArrayHelper::get عندما يكون مفتاح الإدخال عددًا صحيحًا ، تكون المعلمة المعلمة غير صحيحة a44dcad
  • إصلاح تقديم وحدة التحكم باستخدام الجدول ، عند حساب قيمة int ، احسب خطأ نوع تقرير العرض 74a835ab

  • خطأ ثابت في المستخدم المكون لا يمكن تخصيص الخطأ الافتراضي معالجة المستوى 4c78aeb
  • إصلاح تمكين وتعطيل إعدادات المكونات isEnable() لا يعمل da8c51e56
  • إصلاحات باستخدام الطريقة uniqid() في بيئة cygwin ، يجب تعيين المعلمة الثانية على c7f688f true
  • ثابت غير قادر على تعيين عنوان العملية في بيئة cygwin ويتسبب في حدوث خطأ c466f6a
  • ثابت غير قادر على حذف بيانات ملف تعريف ارتباط المتصفح باستخدام response->delCookie() http response->delCookie() 8eb9241
  • إرسال رسالة خادم ثابت ws ، ليست بيانات ext المستلمة بالضرورة صفيفًا تسبب خطأ ff45b35
  • إصلاح ملف سجل الانقسام حسب الوقت c195413
  • إصلاح سجل JSON شكل مشكلة صغيرة a3fc6b9
  • استدعاء getList خدمة موفر getList مرتين fd03e71
  • إصلاح redis cluster لا يدعم auth المعلمة 7a678f
  • إصلاح نموذج الاستعلام json type ، لا يدعم array 6023a9
  • عملية redis ثابتة multi غير متصلة في الوقت e5f698
  • إصلاح redis لا يدعم expireAt ، geoRadius 749241
  • ثابت انحراف الوقت اكتشاف crontab مشكلة eb08a46

تحديث (تحديث) :


  • تحديث وحدة التحكم أيضا تنبعث من حدث قبل تقديم رسالة المساعدة ConsoleEvent::SHOW_HELP_BEFORE d3f7bc3
  • تبسيط وتوحيد http ، ws ، tcp ، منطق أمر إدارة خادم rpc f202c826
  • قم بتحديث فئتي ws و tcp Connection لإضافة newFromArray و toArray لتسهيل تصدير المعلومات واستعادة الاتصالات عبر تخزين الطرف الثالث ( redis ) [a8b0b7c] ( https://github.com/swoft-cloud/swoft -component / pull / 528 / commits / a8b0b7c77d56d4392eba75d13a911816b9dc0cee)
  • قم بتحسين الخادم لإضافة معالج حدث رسالة أنابيب swoole موحد ، استخدم حدث swowt في ws ، tcp لمعالجة رسائل interprocess 1c51a8c

تعزيز :


  • تطلب الآن tcp دعم إضافة الوسيطة طريقة عالمية أو مقابلة ، وتشبه العملية والاستخدام الوسيطة http. مفيد فقط عند استخدام نظام جدولة 6b593877
  • الآن طلب رسالة websocket يدعم إضافة الوسيطة طريقة عالمية أو المقابلة ، وتشبه العملية والاستخدام HTTP الوسيطة. مفيد فقط عند استخدام نظام جدولة 9739815
  • تتيح "إدارة الأحداث" إمكانية إعداد destroyAfterFire لتنظيف البيانات المنقولة في الحدث بعد إرسال كل حدث 50bf43d3
  • استثناء خطأ قاعدة البيانات المضافة code إرجاع fd306f4
  • تشغيل ملف writeFile استثناء فشل الكتابة الجديد 08c4244
  • RPC التحقق من المعلمة الجديدة 8646fc5

جيثب


https://github.com/swoft-cloud/swoft

Source: https://habr.com/ru/post/ar476508/


All Articles