当前位置: 首页 > 后端技术 > PHP

手把手教你5分钟用 PHP 搭建一个高性能服务化后端框架

时间:2023-03-29 16:49:55 PHP

5分钟教你用PHP搭建一个高性能的面向服务的后端框架但是随着Workerman、Swoole等常驻进程模块的出现,PHP已经具备了资格。下面介绍如何使用PHP搭建一个高性能的面向服务的后端框架,并实现一个客户端调用的例子。在服务端,PHP圈最流行的框架是Laravel,Lumen是它的简化版,保留了Container(依赖注入)、artisan(命令行生成数据表)等优点。我在服务端使用的框架叫Luke,Github地址在这里。Luke是Lumen的一个非官方分支。它在Lumen之上做了一层封装,剥离掉了http的路由,同时引入了Workerman。现在在你的工作目录执行如下命令生成项目代码composercreate-projectluke/luke=dev-lukerpcservercdrpcserver此时servers目录下有http.php和jsonrpc.php两个文件,对应http服务和jsonrpc服务分别。现在我们进入rpcserver/app/Http/Controllers,编辑文件ExampleController.php,添加如下代码publicfunctionshow($name){return"Hello$name,thisisLuke.";}这样我们的服务器就设置好了up,现在回到rpcserver目录,执行如下命令启动服务phpservers/jsonrpc.phpstart然后控制台会输出Workerman[servers/jsonrpc.php]startinDEBUGmode-------------------------WORKERMAN----------------------------Workerman版本:3.5.4PHP版本:7.2。1------------------------工人------------------------------userworkerlistenprocessesstatussimonnonejsonNL://0.0.0.0:80001[OK]--------------------------------------------------------表示服务正常运行。这个例子只给Workerman一个任务流程。更多设置和daemon进程方法请参考Workerman文档客户端。现在我们回到项目根目录,打开另一个控制台,输入以下命令新建一个客户端目录,导入模块mkdirclientcdclientcomposerrequireluke/client此时有两个文件config.php和test。vendor/luke/client目录下的php,分别是configuration和client的例子。我们不管他们,在项目目录下新建一个test.php文件,输入以下代码并保存['hosts'=>['127.0.0.1:8000']]];Client::config($config);$client=Client::instance("Example");$ret=$client->show('开发者');变量转储($ret);现在执行phptest.php如果你看到输出array(1){'result'=>string(30)"Hellodeveloper,thisisLuke."}那么恭喜你!您的rpc服务器和客户端已设置。现在将其应用到实际项目中。Workerman和Swoole都是优秀的PHP常驻解决方案,而且Swoole在社区中比Workerman更活跃。但是因为两者性能不相上下,而且Workerman是纯PHP开发,代码更可控,所以Luke选择了Workerman。不过两者的调用方式很接近,只要稍微修改一下代码,就可以改为使用Swoole。Workerman的并发性能可以参考这里。在生产环境使用面向服务的架构后,除了协议,通信部分也要注意加密。这部分Luke暂时没有提供,用户可以通过简单的加密算法自行实现。当服务比较多的时候,需要增加自动发现功能,在LukeClient的项目主页上提供了一些思路。