
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' => [
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,
Middleware perpesanan Websocket
Dikonfigurasi di app/bean.php
:
'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
- Bertindak pada controller
class TestController {}
Middleware Permintaan TCP
Dikonfigurasi di app/bean.php
:
'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ],
- Bertindak pada controller
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