框架特性
首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。
- 代码同步,执行流程异步。
- 内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现
- 容器即对象。实例化,丢进去,取出来。
开发注意事项
开发注意事项
- 禁止使用
$_GET、$_POST、$GLOBALS、$_SERVER、$_FILES、$_COOKIE、$_SESSION、$_REQUEST、$_ENV
等超全局变量。 - 谨慎使用
global、static
关键字。 - 不要在代码非协程环境中执行
sleep
以及其他睡眠函数,这样会导致整个进程阻塞.exit/die
是危险的,会导致worker
进程退出。 - 不要在业务代码中使用
swoole
不支持的hook
, 例如MongoDB`,
pgsql client`, 如果需要使用这些扩展需要单独开用户进程执行。 - 无法
hook
的io
都会同步阻塞进程, 导致协程
无法切换, 直接的影响就是服务器大规模超时. - 不建议使用
curl
扩展 类似的GuzzleHttp
, 推荐使用swoft
封装的网络请求包 - Swoole 短名开启 ,在
php.ini
中配置swoole.use_shortname = 'on'