QueryPHP V1-beta.2 性能优化代码解耦与更好的 IDE 支持 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
doyouhaobaby
V2EX    PHP

QueryPHP V1-beta.2 性能优化代码解耦与更好的 IDE 支持

  •  
  •   doyouhaobaby 2019-05-20 11:27:28 +08:00 3273 次点击
    这是一个创建于 2387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经过 1 个月的开发,QueryPHP v1.0.0-beta.2 版本可以发布了。这个版本的主要是性能优化,代码解耦和友好的 IDE 支持。

    关于 QueryPHP

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

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

    更新日志

    1. 采用 phpunit 8 作为测试组件,修正了相关变更
    2. php7.4 加入 travis 兼容性修复,例外开发分支 php74 进行 php7.4 版本新语法进行预研,考虑到 php7.4 类型系统更利于工程化,未来 1.0 正式版本会采用 php7.4 作为最低版本
    3. [ framework ] Leevel\Kernel\App 与 Leevel\Di\Container 分离,减少了耦合度,涉及到大量的重构和单元测试修复
    4. [ framework ] Facade 重构为 Proxy,通过冗余在 ide 实现自动提示,支持类似 lavavel-ide 的功能,不同的是直接冗余支持,这里涉及到大量的代码编写,开发了常用的一部分
    5. [ framework ] 驱动类组件去掉了包装层,减少了调用链,更加直观和可维护
    6. [ framework ] 分拆 validate 验证器组件的验证器为函数,并在验证器的基础上加入了一个断言功能,解耦了代码。
    7. [ framework ] UnitOfWork 事务处理工作单元加入类似 12 栅栏和权重来支持实体的变更.( before,now,after )*(create(500 支持权重排序),update,replace,delete) = 12
    8. [ framework ] 助手函数全部重构为真实函数,底层助手函数依赖全部改为函数式实现,重构函数惰性加载为真实函数 f ,在业务层可以方便地使用函数和 oop 多范式
    9. [ framework ] 更新的一键生产缓存优化,php leevel production,即可上生产,采用 exclude-from-classmap 替代自己生成 autoloadLeevel.php 来改善类注册表过重的问题。
    10. 使用 phpstan 来初步改善框架代码品质,修复了各个组件的低等级静态检查,后续会逐步提升验证等级让代码更加可靠
    11. [ framework ] 修复数据库组件多对多关联在没有数据的时候 SQL 错误,修正查询条件默认为 null 的条件错误分析
    12. [ application ] bootstrap 和 router 提升到根目录更加方便维护,很重要
    13. [ application ] iviewui 后台菜单支持记住侧边栏状态,菜单状态打开修复,三级菜单支持
    14. [ application ] 其它一些变更都是跟随 framework 更新做得一些调整

    帮助我们

    QueryPHP 是在 2016 年 10 月开始基于一个我早年的 PHP 框架 DoYouHaoBaby 框架开发的。这个早年的框架是我在 2010 年 7.8 月开始的,那个时候在大二,开始的框架也主要用于自用。早年基于这个框架的一些应用作品如下:

    DYHB.BLOG_X

    DYHB.BLOG_X-2.0 详细安装图文教程http://www.knowsky.com/804758.html

    http://www.downcode.com/downcode/j_18106.shtml

    https://github.com/hunzhiwange/dyhb.blog-x

    WindsForce 社区

    http://www.mycodes.net/code_previewmap.php?id=6185

    https://github.com/hunzhiwange/windsforce

    https://www.oschina.net/p/windsforce

    关于为什么要去做一个框架,最开始的时候只是做一个东西感觉比无聊玩游戏更有价值,随着时间的推移更多的是一种责任像一个孩子一样持续改善。

    早年大多数关注的是功能多么多,现在更多的关注工程师用户体验以及严谨性,讲究慢工出细活,多多打磨细节。

    严谨性是我非常喜欢用 rust 语言一个最大一个方面。QueryPHP 的严谨性包括强类型、3000 例测试用例,静态分析以及让开发阶段暴露错误来支持更好的产品。用户体验包含 ide,20 多项内置命令工具(比如一键优化生产),强迫症般地优化 API 名字、更顺畅的使用习惯。从 2016 年 8 月直到 2018 年 11 月才发布初版本 1.0.0.-alpha.1,用工匠精神去打磨作品直到可用。

    如果你觉得可以,可以推荐朋友来试用一下,关注一哈,希望吸引到有兴趣的一起开发,文档基于单元测试加注释来自动化的比较简单。

    2010-present by Xiangmin Liu

    1 条回复    2019-05-20 11:51:06 +08:00
    Q4h7388nR28s95fa
        1
    Q4h7388nR28s95fa  
       2019-05-20 11:51:06 +08:00
    赞一个!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5276 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 07:13 PVG 15:13 LAX 23:13 JFK 02:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86