概述
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] gRPCMake your selection (default: 1): 1Create a default application structure and demo data?[1] Yes[0] No[?] HelpMake your selection (default: 1): 1Do you need Cycle ORM?[1] Yes[0] NoMake your selection (default: 1): 1Loading 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}