乐趣区

关于swoole:PHP-框架-QueryPHP-10-正式版四年打磨生产可用

【开源新闻】https://www.oschina.net/news/…

明天是一个十分非凡的日期,在这里咱们将向大家发表一个重要的音讯,齐全重写的 QueryPHP 1.0 正式版公布了!

对于 QueryPHP

QueryPHP 是一款现代化的高性能 PHP 渐进式协程框架, 咱们还是次要面向传统 PHP-FPM 场景,以工程师用户体验为历史使命,让每一个 PHP 利用都有一个好框架。

百分之百单元测试笼罩直面 Bug,致力于发明高品质产品 Level Level Leevel,依靠 Swoole 开启将来更多可能,此刻将来逐渐渐进。咱们的愿景是 USE LEEVEL WITH SWOOLE DO BETTER, 让您的业务撑起更多的用户服务。

  • https://github.com/hunzhiwange/queryphp
  • https://gitee.com/dyhb/queryphp
  • https://www.queryphp.com

个性

  • Production-Ready (生产可用)
  • 框架理念 (值得托付的使命感,让每一个 PHP 利用都有一个好框架。)
  • 组件零碎 (框架底层由独立的高内聚低耦合组件形成,能够轻松无侵入接入现有零碎。)
  • 路由零碎 (框架提供 MVC 主动路由并可能智能解析 Restful 申请和基于 OpenApi 3.0 标准的 swagger-php 注解路由,文档路由一步搞定。)
  • 整体解决方案 (框架提供了从缓存、Session、IOC 容器、模板引擎、Ddd ORM 等大量开箱即用的性能,提供了基于 Symfony Console 命令行工具集。)
  • 高品质 (百分之百单元测试笼罩直面 Bug,致力于发明高品质产品 Level Level Leevel。)
  • 业务协程化 (基于 Swoole 4 开发,咱们的愿景是大量代码或者无批改,让你的业务撑起更多的用户服务。)
  • 百分之百单元测试笼罩(超过 3500 例测试用例保障系统可靠性和可继续保护。)
  • PHP 7 严格模式(每一个 PHP 脚本都是 strict_types=1,严格模式能够防止很多弱类型带来潜在 BUG。)
  • PHP 7 类型提醒 (尽可能为每一个办法提供确定的参数类型和返回值类型,以及类属性的类型反对。)
  • 依赖注入(残缺实现,要害 MVC、命令行脚本、事件监听器全副接入 IOC 容器。)
  • 畛域驱动设计(反对 UnitOfWork 事务工作单元、Repository 仓储、Specification 查问规约,Entity Getter Setter 畛域实体等。)
  • 防止闭门造车 (QueryPHP 始终从 Laravel、Symfony 等框架排汇一些优良的设计,同时咱们本身也进行了大量的翻新设计。)
  • 更多的个性期待你的发现 …

缘起

在公布 QueryPHP 前,早在 2010 年 10 月便去尝试公布了一个开源框架 DoYouHaoBaby,然而代码晚期的用户体验和品质都十分的不现实。在起初基于这个框架去做了一些利用如 DYHB.BLOG 和社区 WindsForce,事实上框架的一些 BUG 和设计都是通过这些具体的利用来验证的,起初的故事就是全副进行开发。

缘灭

2013 年 11 月开始了第一份工作下班了,缓缓地工夫也少了,也很少再有多少情绪去做一些业余的我的项目了。起初就是心里只留下些许遗憾,没有一颗再折腾的心。加上 2014 下半年想走进来,常常进来唱歌和玩耍,回来的时候又玩玩 Dota,就这样过了 2 年。

新生

辗转来到 2016 年 8 月,过后每天上班回来都要玩 Dota,玩得尽兴的时候会到了深更半夜。过后十分的迷茫,始终在寻找机会,也就是在那个月开始了第一行重构 DoYouHaoBaby 的代码。缓缓地找到了些感觉,也就缓缓改掉了游戏,开始了一段全新的旅程。

Alpha.1 公布

经验了 2 年工夫断断续续开发,第一个版本很快就问世了,QueryPHP 1.0.0-alpha.1 公布,《渐进式 PHP 常驻框架引擎》。第一个版本花了 2 年工夫,次要是汲取以前失败的教训,心愿多花点工夫在设计上,防止前期反反复复推倒重构。

早年读 Vue 和 Laravel 开发历史新闻,在很晚期的时候便开始编写了大量单元测试用例,于是在 2017 年中的时候接入到 Travis-ci,通过 PHPUNIT 编写大量单元测试用例来保障牢靠产品交付,第一个 Alpha.1 版本的时候,整个框架的测试用例就冲破了 2000 例。因为成果十分良好,这个时候便提出了一个 Slogan“百分之百单元测试笼罩直面 Bug”,用工匠精力去做一个纯正的作品,产品文档、技术债权、打算性能和测试用例都须要工作化,将品控落实到每一个小小的步骤。

工匠精力

“工匠精力”,激励企业发展个性化定制、柔性化生产,培养精益求精的工匠精力,增种类、提品质、创品牌。

QueryPHP 为了更好地交付产品,依照严格的形式逐步推进,一块一块将打磨,小到文案、代码排版,大到接口用户体验,慢工出细活,最终设计得以良好出现。防止粗制滥造的作品,致力于发明高品质产品 Level Level Leevel,品控始终贯通整个产品开发的各个流程。

  • v1.0.0-ga 2020 年 7 月 22 日
  • v1.0.0-rc.6 2020 年 4 月 18 日
  • v1.0.0-rc.5 2020 年 2 月 8 日
  • v1.0.0-rc.4 2020 年 1 月 20 日
  • v1.0.0-rc.3 2019 年 12 月 26 日
  • v1.0.0-rc.2 2019 年 11 月 24 日
  • v1.0.0-rc.1 2019 年 11 月 6 日
  • v1.0.0-beta.6 2019 年 10 月 16 日
  • v1.0.0-beta.5 2019 年 9 月 9 日
  • v1.0.0-beta.4 2019 年 7 月 28 日
  • v1.0.0-beta.3 2019 年 6 月 6 日
  • v1.0.0-beta.2 2019 年 5 月 20 日
  • v1.0.0-beta.1 2019 年 4 月 14 日
  • v1.0.0-alpha.3 2019 年 3 月 13 日
  • v1.0.0-alpha.2 2018 年 12 月 12 日
  • v1.0.0-alpha.1 2018 年 11 月 8 日
  • First line of code  2016 年 8 月

对于性能与场景

咱们还是次要面向传统 PHP-FPM 场景,这是咱们整个产品的外围,咱们的 99% 的组件并不依赖 Swoole。很多时候,这曾经够了,比咱们设想中的更加弱小。

依靠 Swoole 开启将来更多可能,整个框架能够运行于 Swoole 服务中,目前开启一键协程化不可敞开。目前反对了 HTTP 和 WebSocket,能够满足你的一些开发需要,并且也是咱们的将来的一个重点反对方向。反对了 MySQL 和 Redis 连接池,能够更好地应用。

绝对于 Swoole 来说,我特地想举荐的是 Go RoadRunner 来运行你的 PHP 利用。Golang 承受 PSR-7 申请,负责管理运行于 CLI 模式 的 PHP 常驻过程,防止框架化带来的性能开销。该公司是一家以 PHP 与 Golang 的为主语言的公司,据他们新闻说,在理论我的项目中能带来 15 倍的晋升,兼容性好很弱小,目前 QueryPHP 曾经反对,将来将会更好地像这个方向欠缺。

我本人也在搞一些 Golang,Rust 方向,能够抉择这些其它语言来晋升性能与扩大场景。

开发路线

打造出面向企业级的产品,尽可能少的破坏性更新,为企业开发舔砖加瓦。将来次要优化用户体验,编写更多边界测试,以求晋升产品的可靠性。

装置

为了简化入门,咱们开发了一个基于 IView-UI 通用后盾权限零碎,能够在传统 PHP-FPM,Swoole 和 RoadRunner 3 中模式上面运行。

composer create-project hunzhiwange/queryphp myapp
php leevel server <Visite http://127.0.0.1:9527/>

Swoole 形式运行

php leevel http:server <Visite http://127.0.0.1:9527/>

Go RoadRunner 形式运行

/data/server/roadrunner-1.8.2-darwin-amd64/rr serve -d -v # -d = debug <Visite http://127.0.0.1:9527/>

运行基于 IViewUI 的通用权限零碎

cd /data/codes/queryphp/frontend
npm install
npm run dev

cd /data/codes/queryphp
php leevel server
http://127.0.0.1:9528/#/login

联系方式

如果你感觉不错,能够关注一下我的项目,谢谢。

https://www.queryphp.com

Email: 635750557@qq.com

退出移动版