首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

竞品太多,夹缝求生

竞品太多,夹缝求生

我写这个框架的最初仅仅只是学习,作为一个毕业的项目找工作而已。当初的第一版代码写的不忍直视,所以并没有期待用于实际项目开发中。

随着工作的深入,以及对与php/socket/http相关知识学习,重构了linkphp版本,用上了很多的设计模式,到现在的版本,所有框架用到的都是通过组件形式整合起来使用,用到了 facade设计模式,依赖注入设计模式当然还有其他的设计模式不说了,composer统一管理,并且与swoole扩展整合,可完全替代php-fpm独立运行,并且将框架常驻内存,无需每次请求都需要实例化,提高性能。

那么我就对于这个框架就抱有很多期待,当然自己的一个网站以及一个app后端都是使用linkphp这个框架,当然使用我提供的db相关操作库并不完美,但是linkphp的魅力又在于可以自定义,可以使用你自己熟悉的orm库。

那么对于一个全新的框架我并不是期待能替换什么,只是希望提供这个框架去解决实际项目中用传统lnmp或者lamp部署的项目所做不到的地方。在保持原项目的基础上在引进linkphp去做剩余的部分:

传统框架瓶颈:

对于传统lnmp或者lamp部署的项目,如nginx部署的都需要将数据转交给php-fpm流程:

||Nginx

||

||

加载nginx的fast-cgi模块

||

fast-cgi监听127.0.0.1:9000地址

|

|

php-fpm 监听127.0.0.1:9000||

php-fpm 接收到请求,启用worker进程处理请求

||

php-fpm 处理完请求,返回给nginx

||

nginx将结果通过http返回给浏览器

所以都是通过php-fpm进行通信然后转交其处理然后返回

给nginx,那么势必会有性能效率上的问题

而linkphp则将php-fpm这一层直接去掉使用了内置的

http服务器并且将其常驻内存,而得到的是性能上的大大

提升

可以自行测试其性能

使用场景举例:

1、定时任务

2、队列

3、推送

大量数据计算场景:

可以统计大量的数据,linkphp是对进程框架,所以可以开个任务跑查询开几个任务专门进行统计,完胜传统框架

做它该做的:

所以你有现有的项目完全不用将其移植到linkphp上,可以共生存。将linkphp当成个工具做原本做不到的事情

http服务器启动(常驻内存模式)

php httpd start //启动php httpd stop //停止 _ _ _ | | | | _ ___ | | ___| | ___ | | / / / _ \| |_ / _ \| | | \ \| |/ / | |_| || _ \ | |_| || |_| |\ V |\ \ | .___/| | | || .___/|_____| \ _' \_\ | | | | | || |[2018-06-01 15:43:12] Server Name: link-httpd[2018-06-01 15:43:12] PHP Version: 7.1.7[2018-06-01 15:43:12] Swoole Version: 2.1.3[2018-06-01 15:43:12] Listen Address: 127.0.0.1[2018-06-01 15:43:12] Listen Port: 9508第一种方式:使用linkphp提倡的以常驻内存形式启动方式,前端可以配合nginx负载均衡使用第二种方式:传统的LNMP/LAMP方式启动,则将根目录定义到src/web目录下将会由非内存形式启动,请求一次则会进行释放,无法使用常驻内存形式提高性能

Nginx + Httpd使用

server { root /wwwroot/; server_name www.linkphp.cn; location / { proxy_http_version 1.1; proxy_set_header Connection "keep-alive"; proxy_set_header X-Real-IP $remote_addr; if (!-e $request_filename) { proxy_pass http://127.0.0.1:9508; } }}

之所以想在实际项目中进行使用,原因在于想要有更新的动力

项目地址在全球最大的同性社交平台GitHub上:

https://github.com/liugene/linkphp

动手小手给个star

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180602G1MOHH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券