设想Swoole实现了HTTPServer,也就是说PHP的部署不再需要依赖Nginx或Apache等Web服务器,也不需要依赖PHP-FPM或PHP_mod来与WebServer通信。安装Swoole扩展后,PHP和golang一样内置了一个高效的HTTPServer。甚至,部署过程用一个简单的Dockerfile就可以实现,再也不用链接nginx和链接php-fpm,让Dockerfile复杂得像蜘蛛网一样。只需要一个Dockerfile,就可以完成WebServer和应用的部署,多幸福啊。FROMphp:cliCOPYproject/var/www/projectCMD["php","/var/www/project/index.php"]与Laravel结合?毕竟非要用Swoole重新发明轮子,那这玩意还是没用。但如果能和当今最流行的PHPWebFramework:Laravel结合起来,我想一切都会不一样了。实施步骤一、获取Laravel首先从github上clone最新版本的laravel。Step2.修改index.phpLaravel的程序入口位于public/index.php,我们只修改这个文件的原文件(去掉注释):make(Illuminate\Contracts\Http\Kernel::class);$response=$kernel->handle($request=Illuminate\Http\Request::capture());$response->send();$kernel->terminate($request,$response);修改后:on('request',function(Swoole\Http\Request$request,Swoole\Http\Response$响应){/***@var\Illuminate\Foundation\Application$app*@var\Illuminate\Contracts\Http\Kernel$kernel*@var\Illuminate\Http\Request$laravelRequest*@var\Illuminate\Http\Response$laravelResponse*/$app=requiredirname(__DIR__).'/bootstrap/app.php';$kernel=$app->make(Illuminate\Contracts\Http\Kernel::class);$laravelResponse=$kernel->handle($laravelRequest=new\Illuminate\Http\Request($request->get??[],$request->post??[],[],$request->cookie??[],$request->files??[],$request->server??[]));$内核->终止($laravelRequest,$laravelResponse);$response->status($laravelResponse->getStatusCode());$response->write($laravelResponse->getContent());取消设置($app,$kernel,$laravelResponse,$laravelRequest);});$http->开始();执行phppublic/index.php开始。不要忘记在开始之前设置.env。更多学习内容请访问【班鼎工厂】精品PHP架构师教程目录齐全,只要能看完保证你的薪水更上一层楼(持续更新中),以上内容希望对你有所帮助每个人。很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向。我不知道从哪里开始改进。我整理了一些资料,包括但不限于:分布式架构、高扩展性、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等进阶知识点需要的可以免费分享给大家,需要的可以点击链接领取高级PHP月薪30k>>>架构师成长之路【免费获取视频和面试资料】
