Swoft 是首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。 —— Swoft 官方文档

最近看到这个新框架,尝试安装玩儿一下,发现这个框架是我见过的安装最简易的框架了(请恕我见识短浅)。当然,这要感谢 Swoft 贡献者大牛们的付出。下面我来说一下 Swoft 的安装步骤吧。

swoft环境搭建

安装swoft的前提是已经安装了swoole

使用composer安装swoft, 想进一步了解composer的同学,请支持 这一次,真正掌握composer

composer create-project swoft/swoft swoft

进入swoft目录,查看版本信息:

☁  swoft [master] ⚡ php bin/swoft -v
 ____                __ _
/ ___|_      _____  / _| |_
\___ \ \ /\ / / _ \| |_| __|
 ___) \ V  V / (_) |  _| |_
|____/ \_/\_/ \___/|_|  \__|

swoft: 1.0.0, php: 7.1.19, swoole: 4.0.3

体验http服务

由于swoft的websocket服务是基于http服务的,所以只需开启ws服务:

☁  swoft [master] ⚡ sudo php bin/swoft ws:start
swoft开启ws服务

默认情况下,启用的是80端口,可在.env文件中指定端口

访问 http://127.0.0.1/

就能看到欢迎页面:

swoft欢迎页

这个欢迎页面对应的控制器是:

swoft/app/Controllers/IndexController.php 的 index 方法

控制器与路由的对应关系是通过注解路由来实现的,简单说,就是在控制器和方法的注释中指定路由

注解路由

我们添加一个方法来测试下:

swoft/app/Controllers/DemoController.php

新增test方法

/**
  * @RequestMapping("test")
  */
public function test()
{
    return '你就是传说中的注解路由?';
}
路由构成

访问 http://127.0.0.1/demo2/test

路由

体验ws服务

首先开启swoft自带的开发工具,具体操作参考 DevTool 配置

访问 http://127.0.0.1/__devtool/ws/test

devtool

在ws提供的文本域可以调试ws服务:

ws测试

ws://127.0.0.1/__devtool 对应的控制器是 swoft/vendor/swoft/devtool/src/WebSocket/DevToolController.php

初体验

swoft将swoole的功能进行了更易使用的封装与调用,并提供了很酷的开发工具。

想要学习swoft的,先将官方文档大概看两遍…