Die offizielle Version von Swoole 2.0 wurde veröffentlicht. Das größte Update in Version 2.0 ist die zusätzliche Unterstützung für Coroutinen. Die offizielle Version unterstützt sowohl PHP5 als auch PHP7.
Basierend auf der Swoole2.0-Coroutine können PHP-Entwickler Code synchron schreiben, und die zugrunde liegende Schicht plant die Coroutine automatisch und wandelt sie in asynchrone E/A um. Lösen Sie das Problem verschachtelter Rückrufe in der herkömmlichen asynchronen Programmierung. (Empfohlenes Lernen: Swoole-Video-Tutorial )
Im Vergleich zur Implementierung von yield/generator und async/await in Node.js (ES6+), Python und anderen Sprachen ist die Swoole-Coroutine nicht erforderlich Der Code fügt zusätzliche Schlüsselwörter hinzu.
Im Vergleich zu Goroutine ist die Swoole-Coroutine integriert. Zum Starten der Coroutine ist es nicht erforderlich, das Schlüsselwort „go“ hinzuzufügen ist einfacher zu verwenden. Darüber hinaus verfügt die E/A-Komponente der Swoole-Coroutine über einen integrierten Timeout-Mechanismus auf der untersten Ebene, sodass kein komplexer Select/Chan/Timer zur Implementierung des Client-Timeouts verwendet werden muss.
Zu den integrierten Coroutine-Client-Komponenten unten in Swoole gehören derzeit: udpclient, tcpclient, httpclient, redisclient und mysqlclient, die im Wesentlichen mehrere von Entwicklern häufig verwendete Kommunikationsprotokolle abdecken. Coroutine-Komponenten können nur in den Rückruffunktionen onConnect, onRequest, onReceive und onMessage des Servers verwendet werden.
In Swoole Version 3.0 haben wir einen neuen in PHP integrierten Coroutine-Scheduler implementiert, der auf dem EG-Mechanismus (vm_interrupt) von ZendVM basiert und die Abhängigkeit von setjmp/longjmp beseitigt.
ermöglicht die Anwendung von Swoole-Coroutine überall, einschließlich PHP-Objektdestruktoren, magischen Methoden, Aufrufen von Reflexionsfunktionen und anderen Szenarien. Die neue Versionsnummer wird auf Swoole 3.0 geändert, das ursprünglich als Grundlage vorgesehen war auf libco C-Stack-Coroutine, verschoben auf 4.0.
Die neue Version des Coroutine-Kernels basiert auf PHP-7.1, daher wurde Swooles Abhängigkeit von der PHP-Version auf 7.1 und seine Abhängigkeit von der gcc-Version auf 4.8 erhöht.
Swoole 4.0 implementiert einen neuen Coroutine-Kernel basierend auf dem Assemblercode von boost.context 1.60.
Auf der Grundlage der Speicherung des PHP-Funktionsaufrufstapels wird der Kontextspeicher des C-Stacks hinzugefügt. Unterstützung für die gesamte PHP-Syntax implementiert. Coroutinen können jetzt in jeder PHP-Funktion verwendet werden, einschließlich call_user_func, Reflection, Magic Method und Array_map.
4.0 ist zu 100 % kompatibel mit 2.0. Nur der Coroutine-Kernel wurde rekonstruiert und die API-Ebene wurde nicht geändert.
Der 4.0-Zweigcode wird auf den C++11-Standard aktualisiert . Es wird empfohlen, gcc-4.8 oder eine höhere Version zu verwenden
Unterstützt PHP7.1 und höher
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Swoole-Versionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!