
Qu'est-ce que Swoft?
Swoft est un framework de coroutine de microservices hautes performances PHP. Il est publié depuis de nombreuses années et est devenu le meilleur choix pour php. Il peut être comme Go, serveur Web coroutine intégré et client coroutine commun et réside en mémoire, indépendamment du PHP-FPM traditionnel. Il existe des opérations de langage Go similaires, similaires aux annotations flexibles du framework Spring Cloud.
Grâce à trois années d'accumulation et d'exploration de directions, Swoft a fait de Swoft le Spring Cloud dans le monde PHP, qui est le meilleur choix pour le cadre hautes performances de PHP et la gestion des microservices.
Github
https://github.com/swoft-cloud/swoft
Swoft v2.0.7
Swoft v2.0.7
continue de naviguer sur la v2.0.6
et a été utilisé dans un grand nombre d'opérations de production, ce qui a été reconnu et pris en charge par de nombreux utilisateurs. La version officielle a fait beaucoup d'améliorations et d'optimisations, avec de meilleures performances.
- Ajout du composant de fonction Http Session, fournit une gestion de session http, prend en charge plusieurs pilotes de stockage
- Prise en charge améliorée des demandes de serveur TCP pour ajouter un middleware de méthode global ou correspondant
- Prise en charge améliorée des demandes de message du serveur Websocket pour l'ajout d'un middleware de méthode global ou correspondant
Session HTTP
Installer le composant swoft / session avec Composer
- Exécuter
composer require swoft/session
dans le répertoire où se trouve le projet composer.json. - Ajouter le
Swoft\Http\Session\SessionMiddleware
middleware global
Dans app/bean.php
:
'httpDispatcher' => [
La valeur par défaut est basée sur des pilotes de fichiers locaux, enregistrés dans le répertoire runtime/sessions
Plus d'informations sur le pilote suffit de configurer le handler
correspondant.
Par exemple, configurez le pilote Redis
:
'sessionHandler' => [ 'class' => RedisHandler::class,
Intergiciel de messagerie Websocket
Configuré dans app/bean.php
:
'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
class TestController {}
Middleware de requête TCP
Configuré dans app/bean.php
:
'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ],
class DemoController {
Journal de mise à jour
Conseils de mise à niveau:
Swoole\WebSocket\Server::push
Le quatrième paramètre $finish
été changé en type int après swoole 4.4.12
.- Le paramètre d'événement
TcpServerEvent::CONNECT
du serveur tcp reste identique à la réception et à la fermeture. $fd, $server
positions de swap de $fd, $server
.
Github
https://github.com/swoft-cloud/swoft
Fixe :
- Lors de la correction de l'injection de configuration, si la valeur n'est pas trouvée, la valeur par défaut du type correspondant sera utilisée pour remplacer l'attribut, provoquant l'écrasement de la valeur par défaut de l'attribut d84d50a7
- Corrigé lors de l'utilisation de la planification des messages dans le serveur WS, aucune donnée vide n'était filtrée, ce qui entraînait une réponse supplémentaire. Évitez la méthode swoft-cloud / swoft # 1002 [d84d50a7] ( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commits / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
- Corrigé lors de l'utilisation de la planification des messages sur le serveur TCP, aucune donnée vide n'était filtrée, ce qui entraînait une réponse supplémentaire. 07a01ba1
- Correction des dépendances manquantes de la bibliothèque swoft / stdlib lors de l'utilisation indépendante du composant de console c569c81a
- Fixed
ArrayHelper::get
Lorsque la clé d'entrée est un entier, le paramètre paramètre est incorrect a44dcad - Correction du rendu de la console à l'aide du tableau, lors du calcul de la valeur int, calcul de l'erreur de type de rapport de largeur 74a835ab
- Correction d'une erreur dans l'utilisateur du composant ne peut pas personnaliser le niveau de gestion des erreurs par défaut 4c78aeb
- Fixer Activer et désactiver les paramètres des composants
isEnable()
ne fonctionne pas da8c51e56 - Corrections L'utilisation de la méthode
uniqid()
dans l'environnement cygwin doit définir le deuxième paramètre sur true c7f688f - Correction de l'impossibilité de définir le titre du processus dans l'environnement cygwin et de provoquer l'erreur c466f6a
- Correction de la suppression des données des cookies du navigateur à l'aide de la
response->delCookie()
8eb9241 - Correction de la répartition des messages du serveur WS, les données ext reçues ne sont pas nécessairement un tableau provoquant une erreur ff45b35
- Correction du fichier journal divisé par le temps c195413
- Résoudre le petit problème de format
JSON
du journal a3fc6b9 - Le fournisseur de services
getList
appelle GetList deux fois FD03E71 redis cluster
ne prend pas en charge le paramètre d' authentification 7a678f- Correction du type
json
requête de modèle, ne prend pas en charge le array
6023a9 - Correction du fonctionnement
multi
redis non connecté à temps e5f698 - Fix redis ne prend pas en charge
expireAt
, geoRadius
749241 - Correction du problème de déviation de détection d'horodatage Crontab EB08A46
Mise à jour (mise à jour) :
- La console de mise à jour émet également un événement avant d'
ConsoleEvent::SHOW_HELP_BEFORE
message d'aide ConsoleEvent::SHOW_HELP_BEFORE
d3f7bc3 - Simplifier et unifier la logique de commande de gestion de serveur http, ws, tcp, rpc f202c826
- Mettez à jour les classes de connexion ws et tcp pour ajouter les méthodes
newFromArray
et toArray
afin de faciliter l'exportation des informations et la restauration des connexions via un stockage tiers ( redis
) [a8b0b7c] ( https://github.com/swoft-cloud/swoft -component / pull / 528 / commits / a8b0b7c77d56d4392eba75d13a911816b9dc0cee) - Optimiser le serveur pour ajouter un gestionnaire d'événement de message de canal swoole unifié, utiliser l'événement swowt dans ws, tcp pour gérer les messages interprocessus 1c51a8c
Amélioration :
- Désormais, les requêtes tcp prennent en charge l'ajout d'un middleware de méthode global ou correspondant, et le processus et l'utilisation sont similaires au middleware http. Utile uniquement lors de l'utilisation de la planification système 6b593877
- Désormais, la demande de message Websocket prend en charge l'ajout d'un middleware de méthode global ou correspondant, et le processus et l'utilisation sont similaires au middleware http. Utile uniquement lors de l'utilisation de la planification système 9739815
- La gestion des événements permet de définir
destroyAfterFire
pour nettoyer les données transportées dans l'événement après chaque envoi d'événement 50bf43d3 - Le
code
ajouté d'exception d'erreur de base de données renvoie fd306f4 - Opération sur le fichier
writeFile
Nouvelle exception d'échec d'écriture 08c4244 - Vérification des nouveaux paramètres RPC 8646fc5
Github
https://github.com/swoft-cloud/swoft