V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
doyouhaobaby
V2EX  ›  PHP

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

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

    经过 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
    HiCode
        1
    HiCode  
       2019-05-20 11:51:06 +08:00
    赞一个!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3381 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:59 · PVG 19:59 · LAX 03:59 · JFK 06:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.