swoolefy

这是一个基于swoole扩展实现的轻量级高性能的API和Web的MVC微服务框架,参考了TP,Yii2,Workerman,swoole_framework等框架的的设计思想。同时也结合了多年来的技术的积累的以及生产环境中的实践经验

实现的功能特性

1、轻量级的框架,实现路由与调度,MVC三层,当然也可以配置多层

2、支持composer和自定义注册命名空间

3、支持多协议,目前支持http,websocket

3、利用swoole的原生异步进程封装成应用服务,更有好的任务投放

4、实现超全局变量,IOC(控制反转),静态延迟绑定,组件服务常驻内存化,trait的多路复用

5、简单易用的定时任务,以及table内存表,自定义错误捕捉

6、灵活多层的配置,配置参数即可实现底层已封装的复杂功能

7、应用对象的深度复制,实现对象的常驻内存,每个请求只需要从内存中复制应用对象,不需要再重新创建,减少IO消耗,保持内存稳定

8、封装View,Log,Mysql,Redis,Mongodb,Swiftmail邮件等常用组件,其他组件根据业务按照约定即可封装成组件

9、支持udp,tcp,http多种方式接入graylog

10、基于inotify实现自动监测swoole服务的文件变动,实现自动重载,检测,智能邮件通知的服务

11、封装启动停止控制的脚本,简单命令即可管理整个框架,使用文档手册将在后期整理

配置环境

1、支持php7.0+

2、搭建lnmp环境,建议使用lnmp一健安装包,https://lnmp.org, 建议安装lnmp1.4

3、安装php必要的扩展,框架需要的扩展包括swoole(1.9.17+), swoole_serialize (https://github.com/swoole/swo... inotify, pcntl, posix, zlib, mbstring,可以通过php-m查看是否安装了这些扩展,如果通过lnmp1.4一健安装包安装的,已经默认安装好这四个pcntl, posix, zlib, mbstring扩展的,只需要在安装swoole和swoole_serialize, inotify即可,具体安装过程参考官方文档

下载框架和安装

在某一个web目录下

(1)git clone https://github.com/bingcool/s...

(2)composer install(需要安装composer)

启动

1、启动文件自动监控程序,进入swoolefy/score/AutoReload

php start.php -d

监控程序自动监控php的文件变动,然后swoole的worker自动重启,这个文件其实是通过调用代码Shell文件夹的swoole_monitor.sh来监控9502端口(这个是swoole的http服务的默认端口)

2、启动swoole的http服务,进入swoole/score/Http

启动:php start.php start http

停止:php start.php stop http

默认端口是9502,当然可以在配置文件中更改,同时对应的swoolefy/score/AutoReload下的daemon.php中对应更改。注意文件权限问题

访问test

在App/Controller中就可以编码测试,基本和thinkphp的mvc那样操作。

比如在App/Controller/TestController.php

那么直接在浏览器输入http://ip:9502/Test/test, 对应的路由规则domain/controller/action

具体的可以参考App/Controller/的例子

如果需要使用mysql,redis,mongodb这些组件功能,请安装mysql,redis,mongodb并在App/Config/config.php中配置,具体的配置可以参考配置文件。这个与Yii2的Component相似.

框架已在github开源:https://github.com/bingcool/s...,有需要的同学可以尝试,也欢迎issue

php mvc 高性能框架,swoolefy-基于swoole扩展实现的高性能的微服务和mvc框架相关推荐

  1. mysql for循环_基于Swoole扩展开发异步高性能的MySQL代理服务器

    MySQL数据库对每个客户端连接都会分配一个线程,所以连接非常宝贵.开发一个异步的MySQL代理服务器,PHP应用服务器可以长连接到这台Server,既减轻MYSQL的连接压力,又使PHP保持长连接减 ...

  2. mysql异步扩展_基于Swoole扩展开发异步高性能的MySQL代理服务器

    MySQL数据库对每个客户端连接都会分配一个线程,所以连接非常宝贵.开发一个异步的MySQL代理服务器,PHP应用服务器可以长连接到这台Server,既减轻MYSQL的连接压力,又使PHP保持长连接减 ...

  3. 使用php开发,基于swoole扩展开发的工具 swoole-crontab

    2019独角兽企业重金招聘Python工程师标准>>> 使用php开发,基于swoole扩展开发的工具 swoole-crontab https://www.oschina.net/ ...

  4. 基于 Koa 的微服务 Node.js 框架设计思路与简单实现

    大家好,我是前端点线面,毕业于华中科技大学,非科班出身的一枚新时代农民工,现在是百度前端研发工程师,著有<前端百题斩>.数十篇学习思维导图(go.React.Redux.Vue.Vuex. ...

  5. JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台,基于Spring Boot 2.7

    SpringBlade微服务开发平台 完整代码下载地址:JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台 采用前后端分离的模式,前端开源两个框架:Sword (基 ...

  6. 微服务等于Spring Cloud?了解微服务架构和框架

    作者:TIM XU 来源:https://xiaoxubeii.github.io/articles/microservices-architecture-introduction/ 微服务初探 什么 ...

  7. 微服务等于 Spring Cloud?了解微服务架构和框架

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | J ...

  8. 从0到1手把手搭建spring cloud alibaba 微服务大型应用框架(十五) swagger篇 : gateway 集成swagger 与 knife4j实现在线api文档并嵌入到自己项目内

    背景 我们日常开发中基本都是协同开发的,当然极个别的项目整体前后端都是一个人开发的,当多人协作时,尤其是前后端人员协同开发时 必然会面临着前端需要了解后端api接口的情况,两个选择,提前设计好文档,然 ...

  9. 5分钟学习基于Go,go-microservice-template,Minke的微服务

    本文讲的是5分钟学习基于Go,go-microservice-template,Minke的微服务,[编者的话]本篇文章介绍了Go语言下构建微服务的例子,作者利用一个helloword讲解了如何使用他 ...

最新文章

  1. 前端进阶(三) webpack处理vue以及vue-cli脚手架环境
  2. 【408预推免复习】操作系统之存储器管理
  3. 笔记:常用SQL语句
  4. 微信公众号开发(python+werobot)-自动回复
  5. YL杯超级篮球赛(jzoj 1325)
  6. 注意Java 8的[Pri​​mitive] Stream.iterate()中的递归
  7. java 8 update 11_从Java 8升级到Java 11应该注意的问题
  8. What's VPC (by quqi99)
  9. K均值聚类关于初始聚类中心的探讨
  10. 将学校版JAVA系统迁移到Mysql数据库的工作安排
  11. iphone储存空间系统怎么清理_iPhone 储存空间里的“系统”项占用过多怎么办?...
  12. 2008年卫星地图_黄河入海口1984年-2016年,34年卫星地图变化
  13. Sharepoin学习笔记—架构系列--Sharepoint的网页(Page),网页解析(Parsing)与解析安全处理(Security)...
  14. 谷粒商城:17.商城业务 — Nginx搭建域名访问
  15. 图像数据流识别圆形_python opencv :使用Hough变换检测圆形,数钱。
  16. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_20-页面查询服务端开发-创建CMS服务工程-测试Controller...
  17. 使用作业异步调用存储过程的示例
  18. ApplicationContextAware使用理解
  19. 【国家集训队】跳跳棋(LCA+二分答案)
  20. OSSIM开源安全信息管理系统(十六)

热门文章

  1. XCode、Objective-C、Cocoa 说的是几样东西
  2. 是什么样的骚操作让应用上线节省90%的时间
  3. 被吐嘈的NodeJS的异常处理
  4. python中的线程之semaphore信号量
  5. 《机器人学经典教程》——2.2 控制论
  6. css-样式重构-代码分享
  7. 表达式求值及转换算法
  8. linux批量远程多服务器FTP并下载文件的脚本
  9. 数据迁移测试_自动化数据迁移测试
  10. js有默认参数的函数加参数_函数参数:默认,关键字和任意