竞品太多,夹缝求生
我写这个框架的最初仅仅只是学习,作为一个毕业的项目找工作而已。当初的第一版代码写的不忍直视,所以并没有期待用于实际项目开发中。
随着工作的深入,以及对与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
领取专属 10元无门槛券
私享最新 技术干货