一个非常大的好处就是高性能,如果使用普通的web服务器,每次运行 PHP 脚本的时候,PHP都需要初始化模块并为你的运行环境启动Zend引擎。并且将 PHP 脚本编译为 OpCodes 交给 Zend引擎执行。这样就意味着每次HTTP请求的时候都执行一遍。因为单个请求创建的环境在请求执行结束后会立即销毁。而使用swoole就不一样了,可以将程序在启动的时候全部加载完毕而常驻内存。但是调试的时候每次修改代码后需要重启服务才可以看到效果,但这不是部署方面的问题,开发时还是可以使用常规环境进行开发。下面简述一下以laravel-swoole为例的实现步骤。
官方地址https://github.com/swooletw/laravel-swoole
#安装 在laravel框架所在的目录执行
composer require swooletw/laravel-swoole
在config/app.php中的providers增加如下代码。
SwooleTW\Http\LaravelServiceProvider::class,
#生成配置文件 在框架目录中执行
php artisan vendor:publish --provider="SwooleTW\Http\HttpServiceProvider"
修改配置文件vendor/swooletw/laravel-swoole/config/swoole_http.php(如果执行了php artisan vendor:publish则应修改项目目录下的config/swoole_http.php)
//给出部分代码
//...
'server' => [
'host' => env('SWOOLE_HTTP_HOST', '0.0.0.0'),
'port' => env('SWOOLE_HTTP_PORT', '8080'),
//......
]
//...
启动服务
php artisan swoole:http start
启动后可以检测对应的端口并访问,注意如果修改了代码需要重新载入指令(停止:stop|重启:restart|重载:reload )