
Was ist Swoft?
Swoft ist ein PHP-Hochleistungs-Microservice-Coroutine-Framework. Es wurde seit vielen Jahren veröffentlicht und ist die beste Wahl für PHP geworden. Es kann wie Go, ein eingebauter Coroutine-Webserver und ein allgemeiner Coroutine-Client sein und befindet sich unabhängig von traditionellem PHP-FPM im Arbeitsspeicher. Es gibt ähnliche Sprachoperationen für Go wie die flexiblen Anmerkungen des Spring Cloud Framework.
Durch drei Jahre Erfahrung in der Ansammlung und in der Erforschung der Richtung hat Swoft Swoft zur Frühlingswolke in der PHP-Welt gemacht. Dies ist die beste Wahl für das leistungsstarke Framework- und Microservices-Management von PHP.
Github
https://github.com/swoft-cloud/swoft
Swoft v2.0.7
Swoft v2.0.7
fährt mit v2.0.6
und wurde in einer Vielzahl von Produktionsabläufen eingesetzt, die von vielen Benutzern erkannt und unterstützt wurden. Die offizielle Version hat viele Verbesserungen und Optimierungen vorgenommen, mit einer besseren Leistung.
- Die Funktionskomponente "HTTP-Sitzung" wurde hinzugefügt. Sie bietet HTTP-Sitzungsverwaltung und unterstützt mehrere Speichertreiber
- Erweiterte Unterstützung für TCP-Server-Anforderungen, um globale oder entsprechende Methoden-Middleware hinzuzufügen
- Verbesserte Unterstützung für Websocket-Server-Nachrichtenanforderungen zum Hinzufügen von globaler oder entsprechender Methoden-Middleware
HTTP-Sitzung
Installieren Sie die swoft / session-Komponente mit Composer
composer require swoft/session
in dem Verzeichnis, in dem sich das Projekt composer.json befindet.- Fügen
Swoft\Http\Session\SessionMiddleware
der globalen Middleware die Middleware Swoft\Http\Session\SessionMiddleware
In app/bean.php
:
'httpDispatcher' => [
Die Standardeinstellung basiert auf lokalen Dateitreibern, die im runtime/sessions
gespeichert sind
Mehr zum Treiber muss nur der entsprechende handler
konfiguriert werden.
Konfigurieren Sie beispielsweise den Redis
Treiber:
'sessionHandler' => [ 'class' => RedisHandler::class,
Websocket-Messaging-Middleware
Konfiguriert in app/bean.php
:
'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
- Auf die Steuerung einwirken
class TestController {}
TCP Request Middleware
Konfiguriert in app/bean.php
:
'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ],
- Auf die Steuerung einwirken
class DemoController {
Protokoll aktualisieren
Upgrade-Tipps:
Swoole\WebSocket\Server::push
Der vierte Parameter $finish
wurde nach swoole 4.4.12
in int type 4.4.12
.- Der Ereignisparameter
TcpServerEvent::CONNECT
des TCP-Servers bleibt derselbe wie receive und close. $fd, $server
Swap-Positionen.
Github
https://github.com/swoft-cloud/swoft
Behoben :
- Wenn beim Korrigieren der Konfigurationsinjektion der Wert nicht gefunden wird, wird der Standardwert des entsprechenden Typs zum Überschreiben des Attributs verwendet, wodurch der Standardwert des Attributs überschrieben wird. D84d50a7
- Bei der Verwendung des Nachrichtenzeitplans auf dem WS-Server wurden keine leeren Daten gefiltert, was zu einer weiteren Antwort führte. Vermeiden Sie die Methode swoft-cloud / swoft # 1002 [d84d50a7] ( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commits / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
- Bei Verwendung der Nachrichtenplanung im TCP-Server wurden keine leeren Daten gefiltert, was zu einer weiteren Antwort führte. 07a01ba1
- Fehlende Abhängigkeiten der swoft / stdlib-Bibliothek behoben, wenn die Konsolenkomponente c569c81a unabhängig verwendet wurde
ArrayHelper::get
Wenn die Eingabetaste eine Ganzzahl ist, ist der Parameter parameter a44dcad falsch- Korrigieren Sie das Konsolen-Rendering mithilfe der Tabelle, und berechnen Sie bei der Berechnung des int-Werts den Breitenberichtstyp-Fehler 74a835ab
Update (Aktualisierung) :
- Die Update-Konsole gibt auch ein Ereignis aus, bevor die
ConsoleEvent::SHOW_HELP_BEFORE
d3f7bc3 angezeigt wird - Vereinfachen und vereinheitlichen Sie die Befehlslogik für die Serververwaltung http, ws, tcp, rpc f202c826
- Aktualisieren Sie die Verbindungsklassen ws und tcp, und fügen Sie die Methoden
newFromArray
und toArray
, um den Export von Informationen und die Wiederherstellung von Verbindungen über den Speicher eines Drittanbieters ( redis
) [a8b0b7c] ( https://github.com/swoft-cloud/swoft -component / pull) zu erleichtern / 528 / commits / a8b0b7c77d56d4392eba75d13a911816b9dc0cee) - Optimieren Sie den Server, um einen einheitlichen Ereignishandler für Swoole-Pipe-Nachrichten hinzuzufügen. Verwenden Sie das Ereignis swowt in ws, tcp, um Interprozessnachrichten 1c51a8c zu verarbeiten
Verbesserung :
- Tcp-Anfragen unterstützen jetzt das Hinzufügen globaler oder entsprechender Methoden-Middleware, und der Prozess und die Verwendung ähneln der http-Middleware. Nützlich nur bei Verwendung der Systemplanung 6b593877
- Jetzt unterstützt die Websocket-Nachrichtenanforderung das Hinzufügen einer globalen oder entsprechenden Methoden-Middleware, und der Prozess und die Verwendung ähneln der http-Middleware. Nützlich nur bei Verwendung der Systemplanung 9739815
- Mit der Ereignisverwaltung können Sie
destroyAfterFire
einstellen, dass die im Ereignis enthaltenen Daten nach jeder Ereignisauslösung 50bf43d3 bereinigt werden - Der hinzugefügte
code
Datenbankfehlerausnahme gibt fd306f4 zurück - Coroutine-Dateioperation
writeFile
Ausnahme 08c4244 bei neuem Schreibfehler - RPC-Überprüfung neuer Parameter 8646fc5
Github
https://github.com/swoft-cloud/swoft