Swoole是用于PHP的生产级异步编程框架。它是一个用纯C编写的PHP扩展,使PHP开发人员能够在PHP中编写高性能、可扩展的并发TCP、UDP、Unix套接字、HTTP、WebSocket服务,而无需太多非阻塞I/O编程和低级Linux知识核心。您可以将Swoole视为类似NodeJS的东西,但适用于性能更高的PHP。为什么要在Swoole上运行Laravel?下图展示了PHP的生命周期。如您所见,每次运行PHP脚本时,PHP都需要初始化模块并为您的环境启动Zend引擎。并将PHP脚本编译成OpCodes供Zend引擎执行。但是,每次请求时都需要执行这样的生命周期。因为单个请求创建的环境会在请求执行结束后立即销毁。换句话说,在传统的PHP生命周期中,它浪费了大量时间来构建和销毁脚本执行的资源。想象一下像Laravel这样的框架,每个请求需要加载多少文件?加载文件也是很大的I/O消耗。那么如果我们使用Swoole搭建一个应用级的Server,所有的脚本文件加载一次就可以保存在内存中呢?这就是为什么我们需要尝试在Swoole上运行Laravel。Swoole可以成为强大的性能助推器,而Laravel提供优雅的结构和代码使用。这是一个完美的组合!安装以下是swooletw/laravel-swoole的主要特性:在Swoole上运行Laravel/Lumen应用程序卓越的性能高达30x沙箱模式隔离应用程序容器支持在Laravel应用程序中运行WebSocket服务器支持Socket.io协议支持Swooletable跨进程数据共享使用Composer需要这个包:$composerrequireswooletw/laravel-swoole这个包依赖于Swoole扩展。在使用这个包之前确保你已经安装了Swoole。使用此命令快速安装它:peclinstallswoole安装此扩展后,您需要编辑php.ini以添加extension=swoole.so行。PHP-我|grepphp.ini#查看php.ini文件位置sudoecho"extension=swoole.so">>php.ini#将extension=swoole.so添加到php.iniphp-m|grepswoole#查看swoole扩展是否开启注意:Swoole目前只支持Linux和OSX。尚不支持Windows服务器。然后,添加服务提供者:如果使用Laravel,则将服务提供者添加到config/app.php服务提供者数组中:['providers'=>[SwooleTW\Http\LaravelServiceProvider::class,],]如果使用ForLumen,请在bootstrap/app.php添加如下代码:$app->register(SwooleTW\Http\LumenServiceProvider::class);这个包支持包自动发现机制。如果你运行的是Laravel5.5+,你可以跳过这一步。构建并运行现在,您可以执行以下命令来启动SwooleHTTP服务。$phpartisanswoole:httpstart然后可以看到如下信息:Startingswoolehttpserver...Swoolehttpserverstarted:
