¿Qué es swoft?
Swoft es un marco de trabajo de microservicio PHP basado en la extensión Swoole. Al igual que Go, Swoft tiene un servidor web de rutina incorporado y un cliente de rutina común y reside en la memoria, independiente del PHP-FPM tradicional. Hay operaciones similares del lenguaje Go, similares a las anotaciones flexibles del marco de Spring Cloud, un poderoso contenedor de inyección de dependencia global, un gobierno de servicio integral, AOP flexible y potente, implementación de especificación de PSR estándar, etc.
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
Swoft v2.0.6
Swoft ha ingresado a la versión 2.0 oficial de esta versión.
Hemos realizado muchas mejoras y optimizaciones en esta versión, y el servidor http tiene un mejor rendimiento. También corrige los errores que quedaron de los anteriores.
Se han agregado y mejorado dos nuevas herramientas de desarrollo para que los desarrolladores las usen:
swoft/swoole-tracker
puede ayudar a los desarrolladores a resolver el seguimiento de enlaces, pérdidas de memoria, verificaciones de bloqueo y análisis de rendimientoswoft-cli
ahora admite la creación básica de esqueleto de aplicación y estructura de componentes, así como la generación de archivos de clase
Herramienta de depuración (swoft-swoole-tracker)
La herramienta de depuración Swoft ayuda a los desarrolladores a abordar el seguimiento de enlaces, pérdidas de memoria, verificaciones de bloqueo y análisis de rendimiento.
Instalar componentes:
compositor requiere swoft / swoole-tracker
Configurar middleware:
return [
// ...
'httpDispatcher' => [
// Agregar middleware global http
'middlewares' => [
// ...
\ Swoft \ Swoole \ Tracker \ Middleware \ SwooleTrackerMiddleware :: class,
],
],
// ...
];
Seguimiento de enlaces
Servicio de Monitoreo
Estado del servicio
Pérdida de memoria
Detección de bloqueo
Herramientas de desarrollo (swoft-cli)
swoft-cli Generación de clase de función de escena agregada (controlador, middleware, tareas, etc.); proporciona herramientas para crear esqueletos de proyectos y andamios de esqueleto de componentes.
Instalar :
Puede descargar desde https://github.com/swoft-cloud/swoft-cli/releases
wget https://github.com/swoft-cloud/swoft-cli/releases/download/{VERSION}/swoftcli.phar
Generación de clase
Ver ayuda:
php swoftcli.phar gen --help
Ejemplo, generar un controlador http:
php swoftcli.phar gen: http-ctrl user --prefix / users
Creando un nuevo proyecto
Ahora es posible crear rápidamente un nuevo proyecto con swoft-cli. De manera predeterminada, se proporcionan 5 conjuntos de repositorios de plantillas, lo que es conveniente para que los usuarios inicialicen diferentes esqueletos de proyectos.
php swoftcli.phar create: aplicación --help
Crear nuevo componente
También puede crear nuevos componentes con swoft-cli y ayudarlo a completar rápidamente la configuración inicial:
php swoftcli.phar create: componente --help
Github
Actualizar registro
Fijo:
- Repare el cliente que utiliza el fd actual como mensaje de respuesta de forma predeterminada cuando el servidor ws recibe el mensaje 3a8890cf
- Se corrigieron todas las conexiones que el servidor ws consiguió a través del servidor swoole. El tipo de fd puede no ser un número entero y causar un error. 0fa79d7
- Fix stdlib SystemHelper será eliminado por Defender en Windows 10 71c2893
- Arreglar
increment/decrement
y obtener una conexión más 94c7171 - La propiedad Fix Model
$modelTimestamps
está cerrada inválida 94c7171 - Reparar Se llamó al registro antes de la inicialización, lo que puede causar el error de pérdida de contexto durante la fase de inicio 5a27704f
- Repare el apretón de manos del servidor ws y abra el uso de la misma ID de rutina de nivel superior. Si uno se ejecuta primero, puede causar la pérdida de sesión posterior c2cd17a
- Se corrigió el
after
error de parámetro de paso del temporizador 8ed609a - Se corrigieron las pérdidas de memoria de la tarea de temporización y los problemas de pérdida de datos de impresión de registro aa6bc32
sgo
Flujo de procesamiento del servidor HTTP optimizado e60d92e- Se corrigió la inconsistencia de la base de datos causada por la reconexión en el caso de las cosas c2e87f2
- Se corrigió el
0
problema de devolución de caso extremo Aop 85bc1b1 - Se corrigió el
BeanFactory::createBean()
problema de creación del método c2e2c89 - Arreglar datos de error RPC es un problema de cadena 3a34658
- Se corrigió el
redisCluster
problema de inicialización 3a60c06 - Reparado
DbException
sin lanzar laDatabase
excepciónCode
3a60c06 - Errores de juicio fijos
getter
ysetter
jorobados paraModelAttribute
2e2f0f1 - Arreglar
Aggregate
agregado, devolver cadena convertir a la fuerza elint
error 7aa98a6 - El
updateCounters
método del modelo de reparación no sincroniza los datos de la entidad después de la actualización 967d6f8
Actualizar:
- Ajuste el servidor ws para cerrar automáticamente la conexión cuando el trabajador salga, agregue la configuración del interruptor, puede elegir si desea abrir. 3a8890c
- ws servidor nuevo evento:
MESSAGE_PUSH
OPEN_BEFORE
MESSAGE_RECEIVE
e1b0583
Mejora:
- Agregar nuevos registros para cortar por tiempo f649df2
- Se agregó soporte de registro para pasar parámetros adicionales 55d5533
- Ajusté y agregué algunos eventos relacionados con el servidor ws para que los usuarios usen e1b0583
- Modelo par
Prop
soporte 630aad8 - Grupo de conexiones agregado (mysql / redis / rpc) para iniciar la conexión inicial a367173
- El servidor TCP admite el empaquetado de datos de encabezado personalizado y el formato de desempaque cuando se utiliza la paquetización de longitud a6fbe932
- Ajuste de mensaje de error de llamada RPC d9226b1
Database
Excepción de operación agregada , error de consola de impresiónSQL
3a60c06- Nueva
int
serie de migración de datos operativos Soporte de longitud 967d6f8 - Se agregó el método sql original
getRawSql
967d6f8 - Amplíe
updateOrInsert
yupdateOrCreate
admita los parámetros de autoincremento 967d6f8
Extra:
Swoftcli
ya admite la creación básica de esqueletos de aplicaciones y estructuras de componentes, así como funciones de generación de archivos de clase.SwoftTracker
soporte para una fácil depuración del desarrollador
0 Comentarios