高性能现代PHP全栈框架 Spiral

概述

Spiral Framework 诞生于现实世界的软件开发项目是一个现代 PHP 框架,旨在为更快、更清洁、更卓越的软件开发提供动力。

特性

高性能

由于其设计以及复杂精密的应用服务器,Spiral Framework框架在不影响代码质量以及与常用库的兼容性的情况下,执行代码的速度可比拉威尔Laravel或 Symfony框架快达 10 倍。

安全

Spiral Framework 提供了编写嵌入式安全应用程序所需的所有工具加密, CSRF 保护、cookie 防篡改、RBAC 授权、基于令牌的身份验证、验证和更多。

久经考验

在Spiral Scout的10+年研发和设计验证中,我们交付了高性能的框架已经为数十个生产应用程序提供服务,并为数百万人驱动功能用户。

具备可扩展性

使用用于队列、GRPC、事件广播和更多。支持的应用程序服务器包括编写水平可扩展所需的一切应用。

PSR 兼容

框架实现了大多数 PSR 标准。享受使用您喜欢的工具的灵活性,不用担心关于 Vendor Lock 或在框架外部使用 Spiral 组件。

优雅的数据映射

Spiral Framework 使用 Cycle ORM 与数据库通信,Cycle ORM 帮助创建干净的域层并动态控制数据库架构。

快速应用开发且对集成开发环境友好

Spiral Framework 经过优化,可在现代 IDE 中实现最佳使用,可与智能脚手架以及原型设计,以便在不牺牲代码质量的情况下实现快速开发。

解锁可能性

摆脱单一的栈式编程,轻松地将螺旋框架Spiral Framework与任何 PHP 库进行集成,或者利用 Go 语言扩展其功能。通过将丰富的业务层与快速的并发编程相结合来提升开发效率。

通用和模块化

该框架不会限制你的设计能力,你可以创建模型 - 视图 - 控制器(MVC)架构的应用、命令与查询职责分离(CQRS)架构的应用、事件驱动型应用以及命令行界面(CLI)应用。只需安装你所需的依赖项即可。

快速开始

确保您的服务器配置了以下 PHP 版本和扩展

  • PHP 8.1+ 64bit

  • mb-string 扩展

  • socket 扩展

  • curl 扩展

  • zip 扩展

安装

安装程序的安装过程非常简单易用。您可以使用以下命令创建新项目:

composer create-project spiral/app tinywan-spiral-app

您将看到以下输出:

Creating a "spiral/app" project at "./tinywan-spiral-app"
Installing spiral/app (3.7.0)
  - Downloading spiral/app (3.7.0)
  - Installing spiral/app (3.7.0): Extracting archive
Created project in /var/www/webman/tinywan-spiral-app
> Installer\Internal\Installer::install
  
   _____         _              _
  / ____|       (_)            | |
 | (___   _ __   _  _ __  __ _ | |
  \___ \ | '_ \ | || '__|/ _` || |
  ____) || |_) || || |  | (_| || |
 |_____/ | .__/ |_||_|   \__,_||_|
         | |
         |_|

  Which application preset do you want to install?
  [1] Web
  [2] Cli
  [3] gRPC
  Make your selection (default: 1): 1

  Create a default application structure and demo data?
  [1] Yes
  [0] No
  [?] Help
  Make your selection (default: 1): 1

  Do you need Cycle ORM?
  [1] Yes
  [0] No
  Make your selection (default: 1): 1

Loading composer repositories with package information

安装应用程序后,将在项目的根目录中生成 README.md 文件,其中包含有关如何启动应用程序服务器以及如何运行应用程序的说明。

运行 Server

要启动应用程序服务器,请执行:

./rr serve
开源技术小栈

默认端口是:8080。我这里 8080 端口被占用,所以我使用 8204 端口。端口修改配置.rr.yaml文件。

服务启动后,您将看到以下输出:

2025-01-13T01:35:18+0000        DEBUG   rpc             plugin was started      {"address": "tcp://127.0.0.1:6001", "list of the plugins with RPC methods:": ["lock", "informer", "resetter", "app"]}
2025-01-13T01:35:27+0000        DEBUG   server          worker is allocated     {"pid": 2847, "max_execs": 0, "internal_event_name": "EventWorkerConstruct"}
[INFO] RoadRunner server started; version: 2024.3.1, buildtime: 2024-12-20T02:15:59+0000
[INFO] sdnotify: not notified
2025-01-13T01:35:27+0000        DEBUG   http            http server was started {"address": "0.0.0.0:8204"}
2025-01-13T01:35:31+0000        DEBUG   server          req-resp mode   {"pid": 2847}
2025-01-13T01:35:39+0000        DEBUG   server          req-resp mode   {"pid": 2847}
2025-01-13T01:35:39+0000        INFO    http            http log        {"status": 200, "method": "GET", "URI": "/", "URL": "/", "remote_address": "172.18.0.1:51978", "read_bytes": 0, "write_bytes": 10873, "start": "2025-01-13T01:35:36+0000", "elapsed": 2708}

访问 http://localhost:8204

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

天机学堂笔记1

FeignClient(contextId "course", value "course-service") public interface CourseClient {/*** 根据老师id列表获取老师出题数据和讲课数据* param teacherIds 老师id列表* return 老师id和老师对应的出题数和教课数*/GetMapping("/course/infoB…

lobechat搭建本地知识库

本文中,我们提供了完全基于开源自建服务的 Docker Compose 配置,你可以直接使用这份配置文件来启动 LobeChat 数据库版本,也可以对之进行修改以适应你的需求。 我们默认使用 MinIO 作为本地 S3 对象存储服务,使用 Casdoor 作为本…

沸点 | 聚焦嬴图Cloud V2.1:具备水平可扩展性+深度计算的云原生嬴图动力站!

近日,嬴图正式推出嬴图Cloud V2.1,此次发布专注于提供无与伦比的用户体验,包括具有水平可扩展性的嬴图Powerhouse的一键部署、具有灵活定制功能的管理控制台、VPC / 专用链接等,旨在满足用户不断变化需求的各项前沿功能&#xff0…

Linux---shell脚本练习

要求: 1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 3、编写个shel 脚本将/usr/local 日录下…

LiveNVR监控流媒体Onvif/RTSP常见问题-二次开发接口jquery调用示例如何解决JS|axios调用接口时遇到的跨域问题

LiveNVR二次开发接口jquery调用示例如何解决JS|axios调用接口时遇到的跨域问题 1、接口调用示例2、JS调用遇到跨域解决示例3、axios请求接口遇到跨域问题3.1、post请求3.2、get请求 4、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、接口调用示例 下面是完整的 jquery 调用示例 $.a…

Canvas简历编辑器-选中绘制与拖拽多选交互方案

Canvas简历编辑器-选中绘制与拖拽多选交互方案 在之前我们聊了聊如何基于Canvas与基本事件组合实现了轻量级DOM,并且在此基础上实现了如何进行管理事件以及多层级渲染的能力设计。那么此时我们就依然在轻量级DOM的基础上,关注于实现选中绘制与拖拽多选交…

服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例

服务器数据恢复环境&故障: 一台服务器上的8块硬盘组建了一组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯显示异常报警。服务器操作系统无法启动,ORACLE数据库也无法启动。 服…

LabVIEW光流算法的应用

该VI展示了如何使用NI Vision Development Module中的光流算法来计算图像序列中像素的运动矢量。通过该方法,可以实现目标跟踪、运动检测等功能,适用于视频处理、机器人视觉和监控领域。程序采用模块化设计,包含图像输入、算法处理、结果展示…

Redis十大数据类型详解

Redis(一) 十大数据类型 redis字符串(String) string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据。例如说是jpg图片或者序列化对象 一个re…

Navicat Premium 16.0.90 for Mac 安装与free使用

步骤 0.下载 通过网盘分享的文件:Navicat Premium 16.0.90 链接: https://pan.baidu.com/s/12O22rXa9MiBPKKTGMELNIg 提取码: yyds 1.打开下好的 dmg 文件 (这个界面不要关闭) 2.将Navicat Premium 拖动至 Applications 这时出现 点击取消。 3.点开…

基于Springboot + vue实现的购物推荐网站

🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论 🔥🔥&…

【大数据】机器学习-----最开始的引路

以下是关于机器学习的一些基本信息,包括基本术语、假设空间、归纳偏好、发展历程、应用现状和代码示例: 一、基本术语 样本(Sample): 也称为实例(Instance)或数据点(Data Point&…

【WPS】【WORDEXCEL】【VB】实现微软WORD自动更正的效果

1. 代码规范方面 添加 Option Explicit:强制要求显式声明所有变量,这样可以避免因变量名拼写错误等情况而出现难以排查的逻辑错误,提高代码的健壮性。使用 On Error GoTo 进行错误处理:通过设置错误处理机制,当代码执行…

No one knows regex better than me

No one knows regex better than me 代码分析,传了两个参数zero,first,然后$second对两个所传的参数进行了拼接 好比:?zero1&first2 传入后就是: 12 然后对$second进行了正则匹配,匹配所传入的参数是否包含字符串Yeedo|wa…

Docker 安装开源的IT资产管理系统Snipe-IT

一、安装 1、创建docker-compose.yaml version: 3services:snipeit:container_name: snipeitimage: snipe/snipe-it:v6.1.2restart: alwaysports:- "8000:80"volumes:- ./logs:/var/www/html/storage/logsdepends_on:- mysqlenv_file:- .env.dockernetworks:- snip…

【RDMA】 ZTR(Zero Touch RoCE)技术(无需配置PFC和ECN)

目录 什么是Zero Touch RoCE(ZTR) 硬件和软件需求 使用方式 实现机制 ZTR-RTTCC 的工作原理 ZTR -RTTCC性能 官方文档 什么是Zero Touch RoCE(ZTR) Zero Touch RoCE(ZTR)技术是NVIDIA开发的一种创新…

【python】OpenCV—Local Translation Warps

文章目录 1、功能描述2、原理分析3、代码实现4、效果展示5、完整代码6、参考 1、功能描述 利用液化效果实现瘦脸美颜 交互式的液化效果原理来自 Gustafsson A. Interactive image warping[D]. , 1993. 2、原理分析 上面描述很清晰了,鼠标初始在 C,也即…

大疆上云API基于源码部署

文章目录 大疆上云API基于源码部署注意事项1、学习官网2、环境准备注意事项3、注册成为DJI开发者4、下载前后端运行所需要的包/依赖前端依赖下载后端所需要的Maven依赖包 用到的软件可以在这里下载5、MySQL数据库安装安装MySQL启动MySQL服务在IDEA中配置MySQL的连接信息 6、Red…

AI学习路线图-邱锡鹏-神经网络与深度学习

1 需求 神经网络与深度学习 2 接口 3 示例 4 参考资料

行业案例:高德服务单元化方案和架构实践

目录 为什么要做单元化 高德单元化的特点 高德单元化实践 服务单元化架构 就近接入实现方案 路由表设计 路由计算 服务端数据驱动的单元化场景 总结 系列阅读 为什么要做单元化 单机房资源瓶颈 随着业务体量和服务用户群体的增长,单机房或同城双机房无法支持服…