热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QueryPHPV1alpha.3完善权限,支持Swoole4和RoadRunner

百度智能云云生态狂欢季热门云产品1折起经过3个月的开发,QueryPHPv1.0.0-alpha.3版本可以发布了,这也是alpha最后一个版本。

百度智能云 云生态狂欢季 热门云产品1折起>>>  hot3.png

经过 3 个月的开发,QueryPHP v1.0.0-alpha.3 版本可以发布了,这也是 alpha 最后一个版本。

关于 QueryPHP

QueryPHP 是一款现代化的高性能 PHP 7 常驻框架,以工程师用户体验为历史使命,让每一个 PHP 应用都有一个好框架。

百分之百单元测试覆盖直面 Bug 一剑封喉,基于 Zephir 实现框架常驻,依托 Swoole 生态实现业务常驻,此刻未来逐步渐进。 我们的愿景是 USE LEEVEL WITH SWOOLE DO BETTER, 让您的业务撑起更多的用户服务。

特性

框架理念 (值得托付的使命感,让每一个 PHP 应用都有一个好框架。)

组件系统 (框架底层由独立的高内聚低耦合组件构成,可以轻松无侵入接入现有系统。)

路由系统 (框架提供 MVC 自动路由并能够智能解析 Restful 请求和基于 OpenApi 3.0 规范的 swagger-php 注解路由,文档路由一步搞定。)

整体解决方案 (框架提供了从缓存、Session、IOC 容器、模板引擎、Ddd ORM 等大量开箱即用的功能,提供了基于 Symfony Console 命令行工具集。)

框架常驻 (Leevel 可选扩展接管底层核心)

业务常驻 (基于 Swoole 4 开发,我们的愿景是少量代码或者无修改,让你的业务撑起更多的用户服务。)

百分之百单元测试覆盖(单元测试一直是国产 PHP 开源项目的痛)

拜师国外现代化框架 (从 Laravel、Symfony 吸收大量特性,也包含其它的框架.)

PHP 7 严格模式 (每一个 PHP 脚本都是 strict_types = 1 )

PHP 7 类型提示 (尽可能为每一个方法提供确定的参数类型和返回值类型)

依赖注入 (完整实现,关键 mvc、命令行脚本、事件监听器全部接入 IOC )

领域驱动设计 (在妖怪的 QeePHP 基础上保持创新,提供了 UnitOfWork[事务工作单元]、Repository[仓储]、Specification[查询规约],Entity getter setter[领域实体或叫模型] )

more...

更新日志

距离上一个版本有 3 个月了,这个我们的 hunzhiwange/framework 已有 183 条跟新日志,hunzhiwange/queryphp 已有 82 条日志,这个版本主要完善 IViewUI 开发的通用权限系统,支持常用常驻方案 Swoole 4 和 RoadRunner,以及文档如何写的问题。

https://github.com/hunzhiwange/framework/releases https://github.com/hunzhiwange/queryphp/releases

完善权限系统

这个更新主要是完善上一个权限系统,基于资源的权限系统,整个权限系统已经全部接入完毕。

可以基于这个开发后台产品,例如我们用于生产的小工具:

框架底层的核心 API 已基本稳定,一直在做一些代码层面的优化。

初步支持 Swoole 4 和 RoadRunner 常驻方案

除了对用户体验的特别注重之外,QueryPHP 自身的性能考虑尽可能的提升。目前基本加入 Swoole 4,还需要完善,计划在 beta 2 版本开始工作。例外还支持 RoadRunner 的常驻方案,目前感觉比较满意这个,基于 PHP CLI 坑少。 下一步需要支持 php-pm 这个常驻方法,观察一哈。

Swoole Http server

php leevel http:server # php leevel http:server -d
php leevel http:reload
php leevel http:stop
php leevel http:status

Swoole Websocket server

hp leevel websocket:server # php leevel websocket:server -d
php leevel websocket:reload
php leevel websocket:stop
php leevel websocket:status

RoadRunner

RoadRunner 是一个开源的高性能 PHP 应用服务器、负载均衡器和流程管理器。它支持作为一个服务运行,能够在每个项目的基础上扩展其功能。

/data/server/roadrunner-1.3.5-darwin-amd64/rr serve -d -v # -d = debug
/data/server/roadrunner-1.3.5-darwin-amd64/rr http:reset
/data/server/roadrunner-1.3.5-darwin-amd64/rr http:workers -i

更多详情见

https://github.com/hunzhiwange/queryphp/blob/master/README-zh-CN.md

文档支持

基于单元测试即文档的理念,开发了一个专门基于单元测试加注解的方式来自动化用户文档。

cd /data/codes/queryphp
php leevel make:doc tests /data/codes/queryphp/vendor/hunzhiwange/framework/tests /data/codes/queryphp.com/docs/docs

根据目前的效果来说,非常不错,这样加速 QueryPHP 文档编写工作,beta.1 版本开始编写主要文档。

** @since 2018.06.06** @version 1.0** @api(* title="变量",* path="template/var",* description="变量是最基本的用法,这里模板引擎做了大量的工作支持更好。",* )*/
class CompilerVarTest extends TestCase
{use Compiler;/*** &#64;api(* title&#61;"最简单一个普通变量",* description&#61;"",* note&#61;"模板标签的 “{” 和 “$” 之间不能有任何的空格&#xff0c;否则标签无效。",* )*/public function testBaseUse(){$parser &#61; $this->createParser();// 普通变量$source &#61; <<<&#39;eot&#39;
{$name}
eot;$compiled &#61; <<<&#39;eot&#39;

eot;$this->assertSame($compiled, $parser->doCompile($source, null, true));}/*** &#64;api(* title&#61;"JS 风格变量",* description&#61;"",* note&#61;"注意&#xff1a;“{{“ 与内容之间可以有空格,也可以没有&#xff0c;结果一样。",* )*/public function testJsStyle(){$parser &#61; $this->createParser();// JS 风格变量$source &#61; <<<&#39;eot&#39;
{{ value }}
eot;$compiled &#61; <<<&#39;eot&#39;

eot;$this->assertSame($compiled, $parser->doCompile($source, null, true));}/*** &#64;api(* title&#61;"输出一个数组",* description&#61;"",* note&#61;"",* )*/public function testArraySupport(){$parser &#61; $this->createParser();// 数组支持$source &#61; <<<&#39;eot&#39;
我的梦想是写好”{$value[&#39;name&#39;]}“&#xff0c;我相信”{$value[&#39;description&#39;]}“。
eot;$compiled &#61; <<<&#39;eot&#39;
我的梦想是写好”“&#xff0c;我相信”“。
eot;$this->assertSame($compiled, $parser->doCompile($source, null, true));}...
}

开发计划

  • PHP 5 时代 - 代码功能堆砌阶段 2010.08.03 - 2014.10.11 &#xff08;原名 The DoYouHaoBaby PHP Framework &#xff09;
  • PHP 7 时代 - 基础功能重构完善 2016.11 - 2018.01
  • PHP 7 时代 - 百分之百单元测试覆盖&#xff0c;代码准确性和可维护性&#xff0c;即工程化阶段 2018.01 - 2019.03
  • PHP 7 时代 - 准生产级别 1.0 正式版&#xff0c;文档完善以及常用常驻方案支持完善 Swoole 4, RoadRunner, php-pm 以及自研扩展框架 Leevel 2019-03 - 2019.12
  • PHP 7 时代 - 面向生产级别的框架&#xff0c;1.1 LTS&#xff0c;2019.12 - 2020.06

感谢关注

2010-present Xiangmin Liu



推荐阅读
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
    作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ... [详细]
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
  • MVC下Log4Net的配置和使用
    MVC下Log4Net的配置和使用对于网站来讲,我们不能将异常信息显示给用户,Log4Net用来记录日志,可以将程序运行过程中的信息输出到文件,数据库中等地方,可以通过日志查看系统的运行过程,发现系 ... [详细]
author-avatar
fadsfwebb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有