¿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 rendimiento
  • swoft-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 :
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/decrementy obtener una conexión más 94c7171
  • La propiedad Fix Model $modelTimestampsestá 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ó elafter 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
  • sgoFlujo 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 0problema de devolución de caso extremo Aop 85bc1b1
  • Se corrigió elBeanFactory::createBean() problema de creación del método c2e2c89
  • Arreglar datos de error RPC es un problema de cadena 3a34658
  • Se corrigió elredisCluster problema de inicialización 3a60c06
  • Reparado DbExceptionsin lanzar la Databaseexcepción Code3a60c06
  • Errores de juicio fijos gettersetterjorobados para ModelAttribute 2e2f0f1
  • Arreglar Aggregateagregado, devolver cadena convertir a la fuerza el interror 7aa98a6
  • El updateCountersmé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 Propsoporte 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
  • DatabaseExcepción de operación agregada , error de consola de impresión SQL 3a60c06
  • Nueva intserie de migración de datos operativos Soporte de longitud 967d6f8
  • Se agregó el método sql original getRawSql967d6f8
  • Amplíe updateOrInsertupdateOrCreateadmita 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