当前位置: 首页 > news >正文

高性能现代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] 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}

访问 http://localhost:8204

http://www.lryc.cn/news/520285.html

相关文章:

  • LeetCode - #182 Swift 实现找出重复的电子邮件
  • 《解锁鸿蒙Next系统人工智能语音助手开发的关键步骤》
  • 【Linux网络编程】数据链路层 | MAC帧 | ARP协议
  • 《自动驾驶与机器人中的SLAM技术》ch7:基于 ESKF 的松耦合 LIO 系统
  • 基于spingbott+html+Thymeleaf的24小时智能服务器监控平台设计与实现
  • 全栈面试(一)Basic/微服务
  • python安装完成后可以进行的后续步骤和注意事项
  • [Qt] 窗口 | 菜单栏MenuBar
  • [读书日志]从零开始学习Chisel 第十三篇:Scala的隐式参数与隐式转换(敏捷硬件开发语言Chisel与数字系统设计)
  • CMake学习笔记(1)
  • cursor+deepseek构建自己的AI编程助手
  • Kotlin实现DataBinding结合ViewModel的时候,提示找不到Unresolved reference: BR解决方案
  • java项目启动时,执行某方法
  • 详解如何自定义 Android Dex VMP 保护壳
  • Grails应用http.server.requests指标数据采集问题排查及解决
  • 开源临床试验软件OpenClinica的安装
  • 网络安全 | 网络安全法规:GDPR、CCPA与中国网络安全法
  • 深入学习 Python 爬虫:从基础到实战
  • element plus 使用 upload 组件达到上传数量限制时隐藏上传按钮
  • 音频DSP的发展历史
  • 2025低代码与人工智能AI新篇
  • 【HarmonyOS Next NAPI 深度探索1】Node.js 和 CC++ 原生扩展简介
  • redis的学习(四)
  • C# winform 多线程 UI更新数据 报错:无法访问已释放的对象。
  • error: linker `link.exe` not found
  • Vue.js组件开发-如何使用moment.js
  • Linux第二课:LinuxC高级 学习记录day01
  • 《DOM NodeList》
  • Nginx代理同域名前后端分离项目的完整步骤
  • uniapp页面高度设置(铺满可视区域、顶部状态栏高度、底部导航栏高度)