swoole框架-swoft初体验
没有swoole之前,php一直被"誉“为世界上最好的语言。swoole横空出世后,php就成了宇宙最好的语言了...
关于swoole的基础使用,详见 2018年swoole实战1-初识swoole 系列。
swoft是基于swoole的高性能协程全栈框架。看了 swoft官网介绍, 瞬间觉得是一个牛逼闪闪的框架。
想要使用swoole,如果自己手工造一个框架,时间成本太高,而且对自己的代码质量没什么信心(好吧,这才是主要原因...),如果将swoole与流行的框架,如laravel,yii2,thinkphp结合,会遇到不少坑,而且这些框架显得过于笨重。权衡之下,swoft这种专为swoole为生的框架,对于懒人来说,就很适合了。使用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
![e07fca2a196ed97ab59c92fdec7d0af7.png](https://img-blog.csdnimg.cn/img_convert/e07fca2a196ed97ab59c92fdec7d0af7.png)
swoft开启ws服务
默认情况下,启用的是80端口,可在.env文件中指定端口
访问 http://127.0.0.1/
就能看到欢迎页面:
![7f9b7e73620efd98a2406072b327b13d.png](https://img-blog.csdnimg.cn/img_convert/7f9b7e73620efd98a2406072b327b13d.png)
swoft欢迎页
这个欢迎页面对应的控制器是:
swoft/app/Controllers/IndexController.php 的 index 方法
控制器与路由的对应关系是通过注解路由来实现的,简单说,就是在控制器和方法的注释中指定路由
![2c4206771881239c31925694031b77f7.png](https://img-blog.csdnimg.cn/img_convert/2c4206771881239c31925694031b77f7.png)
注解路由
我们添加一个方法来测试下:
swoft/app/Controllers/DemoController.php
新增test方法
/** * @RequestMapping("test") */public function test(){ return '你就是传说中的注解路由?';}
![34243b261ecccdfb6af210474535044a.png](https://img-blog.csdnimg.cn/img_convert/34243b261ecccdfb6af210474535044a.png)
路由构成
访问 http://127.0.0.1/demo2/test
![a8aae9240553701e886e3bacfaf750bd.png](https://img-blog.csdnimg.cn/img_convert/a8aae9240553701e886e3bacfaf750bd.png)
路由
体验ws服务
首先开启swoft自带的开发工具,具体操作参考 DevTool 配置
访问 http://127.0.0.1/__devtool/ws/test
![c08e004ff6641c5b24880e3aac1c87a1.png](https://img-blog.csdnimg.cn/img_convert/c08e004ff6641c5b24880e3aac1c87a1.png)
devtool
在ws提供的文本域可以调试ws服务:
![8e14392b6104109a0202bdc28e22d34b.png](https://img-blog.csdnimg.cn/img_convert/8e14392b6104109a0202bdc28e22d34b.png)
ws测试
ws://127.0.0.1/__devtool 对应的控制器是 swoft/vendor/swoft/devtool/src/WebSocket/DevToolController.php
初体验
swoft将swoole的功能进行了更易使用的封装与调用,并提供了很酷的开发工具。
想要学习swoft的,先将官方文档大概看两遍...