
¿Qué es swoft?
Swoft es un marco de trabajo de rutina de microservicio de alto rendimiento de PHP. Se ha publicado durante muchos años y se ha convertido en la mejor opción para php. Puede ser como Go, un servidor web de rutina incorporado y un cliente de rutina común y reside en la memoria, independiente del PHP-FPM tradicional. Existen operaciones de lenguaje Go similares, similares a las anotaciones flexibles del marco Spring Cloud.
A través de tres años de acumulación y exploración de direcciones, Swoft ha convertido a Swoft en la Nube de Primavera en el mundo PHP, que es la mejor opción para el marco de trabajo de alto rendimiento y la gestión de microservicios de PHP.
Github
https://github.com/swoft-cloud/swoft
Swoft v2.0.7
Swoft v2.0.7
continúa navegando en v2.0.6
y se ha utilizado en una gran cantidad de operaciones de producción, lo cual ha sido reconocido y respaldado por muchos usuarios. La versión oficial ha realizado muchas mejoras y optimizaciones, con un mejor rendimiento.
- Se agregó el componente de función Http Session, proporciona administración de sesión http, admite múltiples controladores de almacenamiento
- Soporte de solicitud de servidor TCP mejorado para agregar middleware de método global o correspondiente
- Soporte mejorado de solicitud de mensajes del servidor Websocket para agregar middleware de método global o correspondiente
Sesión HTTP
Instale el componente swoft / session con Composer
- Ejecutar
composer require swoft/session
en el directorio donde se encuentra el proyecto composer.json. - Agregue el
Swoft\Http\Session\SessionMiddleware
middleware global
En app/bean.php
:
'httpDispatcher' => [
El valor predeterminado se basa en controladores de archivos locales, guardados en el directorio de runtime/sessions
Más información sobre el controlador solo necesita configurar el handler
correspondiente.
Por ejemplo, configure el controlador Redis
:
'sessionHandler' => [ 'class' => RedisHandler::class,
Middleware de mensajería websocket
Configurado en app/bean.php
:
'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
- Actuando sobre el controlador
class TestController {}
TCP Solicitar Middleware
Configurado en app/bean.php
:
'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ],
- Actuando sobre el controlador
class DemoController {
Actualizar registro
Consejos de actualización:
Swoole\WebSocket\Server::push
El cuarto parámetro $finish
se cambió a int type después de swoole 4.4.12
.- El parámetro de evento
TcpServerEvent::CONNECT
del servidor tcp sigue siendo el mismo que recibir y cerrar. $fd, $server
posiciones de intercambio del $fd, $server
.
Github
https://github.com/swoft-cloud/swoft
Fijo :
- Al corregir la inyección de configuración, si no se encuentra el valor, el valor predeterminado del tipo correspondiente se utilizará para anular el atributo, lo que hará que se sobrescriba el valor predeterminado del atributo d84d50a7
- Se corrigió al usar la programación de mensajes en el servidor ws, no se filtraron datos vacíos, lo que resultó en una respuesta más. Evite el método swoft-cloud / swoft # 1002 [d84d50a7] ( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commits / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
- Se corrigió al usar la programación de mensajes en el servidor tcp, no se filtraron datos vacíos, lo que resultó en una respuesta más. 07a01ba1
- Se corrigieron las dependencias faltantes de la biblioteca swoft / stdlib cuando se usa el componente de consola independientemente c569c81a
ArrayHelper::get
fijo ArrayHelper::get
Cuando la clave de entrada es entera, el parámetro del parámetro es incorrecto a44dcad- Se corrigió el procesamiento de la consola usando la tabla, al calcular el valor int, calcular el ancho del error de tipo de informe 74a835ab
- Se corrigió el error en el usuario del componente que no puede personalizar el nivel de manejo de errores predeterminado 4c78aeb
- Fijar Habilitar y deshabilitar la configuración de componentes
isEnable()
no funciona da8c51e56 - Correcciones El uso del método
uniqid()
en el entorno cygwin debe establecer el segundo parámetro en verdadero c7f688f - Solucionado No se puede establecer el título del proceso en el entorno cygwin y causar el error c466f6a
- Solucionado No se pueden eliminar los datos de cookies del navegador usando la
response->delCookie()
8eb9241 - Se reparó el envío de mensajes del servidor ws, los datos ext recibidos no son necesariamente una matriz que causa un error ff45b35
- Fijar archivo de registro dividido por tiempo c195413
- Solucione el problema pequeño del formato
JSON
registro a3fc6b9 - Se
getList
llamada getList
proveedor de servicios rpc
dos veces fd03e71 - Fix
redis cluster
no admite el parámetro de auth
7a678f - Arreglar el tipo de consulta de modelo
json
, no es compatible con la array
6023a9 - Se reparó la operación
multi
redis no conectada a tiempo e5f698 - Fix redis no admite
expireAt
, geoRadius
749241 - Se corrigió el problema de desviación de detección de marca de tiempo de
crontab
eb08a46
Actualización (Actualización) :
- La consola de actualización también emite un evento antes de
ConsoleEvent::SHOW_HELP_BEFORE
mensaje de ayuda ConsoleEvent::SHOW_HELP_BEFORE
d3f7bc3 - Simplifique y unifique la lógica de comando de administración del servidor http, ws, tcp, rpc f202c826
- Actualice las clases de conexión ws y tcp para agregar los métodos
newFromArray
y toArray
para facilitar la exportación de información y la restauración de conexiones a través de almacenamiento de terceros ( redis
) [a8b0b7c] ( https://github.com/swoft-cloud/swoft -component / pull / 528 / commits / a8b0b7c77d56d4392eba75d13a911816b9dc0cee) - Optimice el servidor para agregar un controlador de eventos de mensajes de tubería unificada, use el evento swowt en ws, tcp para manejar los mensajes entre procesos 1c51a8c
Mejora
- Ahora, las solicitudes de TCP admiten agregar middleware de método global o correspondiente, y el proceso y el uso son similares a los de middleware http. Útil solo cuando se usa la programación del sistema 6b593877
- Ahora, la solicitud de mensaje websocket admite agregar middleware de método global o correspondiente, y el proceso y el uso son similares a los de middleware http. Útil solo cuando se usa la programación del sistema 9739815
- La gestión de eventos permite configurar
destroyAfterFire
para limpiar los datos transportados en el evento después de cada envío de eventos 50bf43d3 - El
code
agregado de excepción de error de la base de datos devuelve fd306f4 - Operación de archivo de rutina
writeFile
Nueva excepción de error de escritura 08c4244 - RPC nueva verificación de parámetros 8646fc5
Github
https://github.com/swoft-cloud/swoft