PHP Microservice Framework: Swoft v2.0.7 Rilis sesuai jadwal


Apa itu Swoft?


Swoft adalah kerangka kerja coroutine microservice kinerja tinggi PHP. Ini telah diterbitkan selama bertahun-tahun dan telah menjadi pilihan terbaik untuk php. Ini bisa seperti Go, server web coroutine bawaan dan klien coroutine umum dan ada dalam memori, tidak tergantung pada PHP-FPM tradisional. Ada operasi Go bahasa yang serupa, mirip dengan anotasi fleksibel kerangka kerja Cloud Spring.


Melalui tiga tahun akumulasi dan eksplorasi arah, Swoft telah menjadikan Swoft Spring Cloud di dunia PHP, yang merupakan pilihan terbaik untuk kerangka kerja kinerja tinggi PHP dan manajemen layanan mikro.


Github


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


Swoft v2.0.7


Swoft v2.0.7 terus berlayar pada v2.0.6 dan telah digunakan dalam sejumlah besar operasi produksi, yang telah diakui dan didukung oleh banyak pengguna. Versi resmi telah membuat banyak peningkatan dan optimisasi, dengan kinerja yang lebih baik.


  • Ditambahkan komponen fungsi Sesi Http, menyediakan manajemen sesi http, mendukung beberapa driver penyimpanan
  • Dukungan permintaan server TCP yang ditingkatkan untuk menambahkan middleware metode global atau yang sesuai
  • Peningkatan pesan permintaan server Websocket server untuk menambahkan middleware metode global atau yang sesuai

Sesi Http


Instal komponen swoft / session dengan Composer


  • Jalankan composer require swoft/session di direktori di mana project composer.json berada.
  • Tambahkan Swoft\Http\Session\SessionMiddleware ke middleware global

Di app/bean.php :


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

Defaultnya didasarkan pada driver file lokal, disimpan di direktori runtime/sessions

Lebih lanjut tentang driver hanya perlu mengkonfigurasi handler sesuai.
Misalnya, konfigurasikan driver Redis :


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

Middleware perpesanan Websocket


  • Middleware global

Dikonfigurasi di app/bean.php :


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

  • Bertindak pada controller

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

Middleware Permintaan TCP


  • Middleware global

Dikonfigurasi di app/bean.php :


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

  • Bertindak pada controller

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

Perbarui log


Kiat peningkatan:
  • Swoole\WebSocket\Server::push Parameter keempat $finish diubah menjadi tipe int setelah swoole 4.4.12 .
  • Parameter acara TcpServerEvent::CONNECT dari server tcp tetap sama dengan menerima dan menutup. $fd, $server posisi swap $fd, $server .


Github


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


Diperbaiki :


  • Ketika memperbaiki injeksi konfigurasi, jika nilainya tidak ditemukan, nilai default dari tipe yang sesuai akan digunakan untuk mengganti atribut, menyebabkan nilai default atribut ditimpa d84d50a7
  • Diperbaiki ketika menggunakan jadwal pesan di server, tidak ada data kosong yang difilter, menghasilkan satu respons lagi. Hindari metode swoft-cloud / swoft # 1002 [d84d50a7] ( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commit / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
  • Diperbaiki saat menggunakan penjadwalan pesan di server tcp, tidak ada data kosong yang difilter, menghasilkan satu respons lagi. 07a01ba1
  • Memperbaiki dependensi pustaka swoft / stdlib yang hilang saat menggunakan komponen konsol secara mandiri c569c81a
  • Memperbaiki ArrayHelper::get Ketika kunci input integer, parameter parameter a44dcad salah
  • Perbaiki render konsol menggunakan tabel, saat menghitung nilai int, hitung kesalahan jenis laporan lebar 74a835ab

  • Memperbaiki kesalahan pada pengguna komponen tidak dapat menyesuaikan tingkat penanganan kesalahan standar 4c78aeb
  • Perbaiki Aktifkan dan nonaktifkan Pengaturan komponen isEnable() tidak berfungsi da8c51e56
  • Perbaikan Menggunakan metode uniqid() di lingkungan cygwin harus mengatur parameter kedua ke true c7f688f
  • Tetap Tidak dapat mengatur judul proses di lingkungan cygwin dan menyebabkan kesalahan c466f6a
  • Tetap Tidak dapat menghapus data cookie browser menggunakan http response->delCookie() 8eb9241
  • Memperbaiki pengiriman pesan server, data ext yang diterima belum tentu berupa array yang menyebabkan kesalahan ff45b35
  • Perbaiki perpecahan file log berdasarkan waktu c195413
  • Perbaiki log format JSON masalah kecil a3fc6b9
  • Memperbaiki penyedia layanan rpc panggilan getList, dua kali fd03e71
  • Fix redis cluster tidak mendukung parameter auth 7a678f
  • Perbaiki model tipe permintaan json , tidak mendukung array 6023a9
  • Fixed redis multi operasi tidak terhubung dalam waktu e5f698
  • Perbaiki redis tidak mendukung expireAt , geoRadius 749241
  • Memperbaiki masalah penyimpangan stempel waktu deteksi crontab eb08a46

Perbarui (Perbarui) :


  • Perbarui konsol juga memancarkan suatu peristiwa sebelum merender pesan bantuan ConsoleEvent::SHOW_HELP_BEFORE d3f7bc3
  • Sederhanakan dan satukan logika perintah manajemen server http, ws, tcp, rpc f202c826
  • Perbarui kelas Koneksi ws dan tcp untuk menambahkan metode newFromArray dan toArray untuk memfasilitasi ekspor informasi dan memulihkan koneksi melalui penyimpanan pihak ketiga ( redis ) [a8b0b7c] ( https://github.com/swoft-cloud/swoft -component / pull / 528 / commit / a8b0b7c77d56d4392eba75d13a911816b9dc0cee)
  • Optimalkan server untuk menambahkan event handler pesan pipa swoole terpadu, gunakan acara swowt di ws, tcp untuk menangani pesan antarproses 1c51a8c

Peningkatan :


  • Sekarang permintaan tcp mendukung penambahan middleware metode global atau yang sesuai, dan proses dan penggunaannya mirip dengan http middleware. Hanya berguna saat menggunakan penjadwalan sistem 6b593877
  • Sekarang permintaan pesan websocket mendukung penambahan middleware metode global atau yang sesuai, dan proses dan penggunaannya mirip dengan http middleware. Hanya berguna saat menggunakan penjadwalan sistem 9739815
  • Manajemen Acara memungkinkan pengaturan destroyAfterFire untuk membersihkan data yang dibawa dalam acara setelah setiap pengiriman acara 50bf43d3
  • Pengecualian kesalahan basis data menambahkan code mengembalikan fd306f4
  • Operasi file writeFile Pengecualian kegagalan penulisan baru 08c4244
  • Verifikasi parameter baru RPC 8646fc5

Github


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

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


All Articles