资讯专栏INFORMATION COLUMN

QueryPHP V1-beta.1 部分文档代码解耦,版本PHP 7.3.2

lentrue / 1400人阅读

摘要:百分之百单元测试覆盖直面一剑封喉,基于实现框架常驻,依托生态实现业务常驻,此刻未来逐步渐进。国际化例子函数随机数字优化最开始采用的的继承一个基础的,方便单元测试有一定性能损失。

经过 1 个月的开发,QueryPHP v1.0.0-beta.1 版本可以发布了,这也是 beta 3 个版本的开始部分。这个版本的主要是代码解耦和性能提升,文档开发。

关于 QueryPHP

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

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

更新日志

Facade 优化,不再继承一个基础的 Facade,不影响单元测试,并且减少了复杂度和调用链

函数惰性加载方案支持,将静态类解耦为真正的函数,框架底层组件直接调用函数本身

文档更新,这次更新了 20 多篇文档

新增几十例测试用例,框架测试用例终于突破 3000 大关,框架部分 3008 测试用例, 9835 断言

PHP 最低依赖版本从 PHP 7.1.3 修改 PHP 7.3.2,框架正在迭代距离用户使用还有段时间,我们可以使用最新的特性

框架自带的 composer 载入优化器支持辅助函数白名单

QueryPHP 自身是一个包含基础权限的后台系统,代码优化更符合领域驱动设计分层架构,引入工作流简化流水账代码

锁定 doctrine/annotations ~1.6.0 和 zendframework/zend-diactoros ^2.1.1 减少兼容性问题和修复用户安装报错的问题

去掉视图中 v8js 的支持,删除基类 Facade, 删除宏扩展,简化设计减少复杂度。

技术债务,框架底层大量的代码优化进行解耦,减少复杂减少技术债务

函数惰性加载

PHP 的函数式特性已经逐步被纯对象所取代,函数库很多时候被包装为静态类,很多时候其实不需要一个类,为此 QueryPHP 底层框架提供了全局函数 fn 来实现了惰性加载。


精简框架自身助手函数库

仅仅提供 4 个助手函数就完全满足了系统的库函数的加载使用。

https://github.com/hunzhiwang...

fn("LeevelSupportStr
and_num", 5); 
hl("dump", 1, 2);
app("request");
__("国际化");

例子函数


Facade 优化

最开始采用的 Laravel 的继承一个基础的 Facade,方便单元测试,有一定性能损失。后来觉得在做单元测试只需要清空容器注册的服务就可以所以优化了一版本。


 *
 * @since 2017.06.10
 *
 * @version 1.0
 */
class Encryption
{
    /**
     * call.
     *
     * @param string $method
     * @param array  $args
     *
     * @return mixed
     */
    public static function __callStatic(string $method, array $args)
    {
        return App::singletons()
            ->make("encryption")
            ->{$method}(...$args);
    }
}

文档更新

系统新增了 20 个新的文档,后续会逐渐丰富起来。

https://www.queryphp.com/docs/

自动载入优化器

QueryPHP 实现了一套基于并且优化了 composer 的自动加载,并且屏蔽了助手函数的载入。

这次提供了白名单来让你选择部分函数的载入。

/**
 * ---------------------------------------------------------------
 * Composer
 * ---------------------------------------------------------------.
 *
 * 用于管理 PHP 依赖包
 * 优化 composer 性能,提炼 composer 中的 autoload_static 中的我们关注的 psr4 命名空间映射
 * 我们 classmap 需要通过 `php leevel autoload` 生成,包含命令 `composer dump-autoload -o`
 * 对于助手函数需要自己引入
 */
$autoloadLeevel = __DIR__."/../vendor/autoloadLeevel.php";

if (is_file($autoloadLeevel)) {
    $composer = require $autoloadLeevel;
} else {
    $composer = require __DIR__."/../vendor/autoload.php";
}

composer.json 部分代码

{
    "name": "hunzhiwange/queryphp",
    "description": "The QueryPHP Application.",
    "require": {
        "php": "^7.3.2",
        "hunzhiwange/framework": "dev-master"
    },
    "extra": {
        "leevel-console" : {
            "autoload": {
                "@namespaces": "The white of Psr4",
                "namespaces": [
                    "Leevel",
                    "Dotenv",
                    "Carbon",
                    "Monolog",
                    "Whoops",
                    "Swagger"
                ],
                "@files": "The white of autoload files",
                "files": [
                    "common/Infra/functions.php",
                    "hunzhiwange/framework/src/Leevel/Leevel/functions.php"
                ]
            }
        }
    }
}
更好地领域驱动分层实现,工作流支持

正在尝试更好地代码实现领域驱动设计分层架构。

https://github.com/hunzhiwang...

锁定部分组件版本

锁定 doctrine/annotations ~1.6.0 和 zendframework/zend-diactoros ^2.1.1 减少兼容性问题和修复用户安装报错的问题,持续集成系统在 composer 最低依赖状况下不会出错。

https://github.com/hunzhiwang...

帮助我们

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

DYHB.BLOG_X

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

http://www.downcode.com/downc...

https://github.com/hunzhiwang...

WindsForce 社区

http://www.mycodes.net/code_p...

https://github.com/hunzhiwang...

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

目前 QueryPHP 由本人一人负责开发,文档,logo 设计,视频,官网和宣传需要大量精力。

如果你觉得可以,可以推荐朋友来试用一下,关注一哈,希望吸引到有兴趣的一起开发,文档,。

用 10 年打造一个完美的作品,2010-present Xiangmin Liu。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31260.html

相关文章

  • QueryPHP V1-beta.3 完成 1.0.0 计划功能冻结

    摘要:版本完成正式版前的除之外计划功能,启动冻结。百分之百单元测试覆盖直面一剑封喉,基于实现框架常驻,依托生态实现业务常驻,此刻未来逐步渐进。 QueryPHP v1.0.0-beta. 版本完成 1.0 正式版前的除 Swoole 之外计划功能,启动冻结。下一版本专注 Swoole 协程改进。 关于 QueryPHP QueryPHP 是一款现代化的渐进式高性能 PHP 7 不仅仅是常驻框...

    ghnor 评论0 收藏0
  • 何成为 QueryPHP 开发者

    摘要:文档开发基于单元测试实现的自动化文档当前文档开发计划功能开发当前计划功能技术债务清偿当前技术债务单元测试尽可能减少当前单元测试成为开发者需要加入我们的组织,如有相关意愿请发送邮件至小牛哥,我们会联系你的。 QueryPHP 非常欢迎各位给我们共同的伟大的作品添砖加瓦,实现为 PHP 社区提供一个好框架的美好愿景。 文档开发.基于单元测试实现的自动化文档 当前文档开发 计划功能.开发...

    bigdevil_s 评论0 收藏0
  • swoolefy-基于swoole扩展实现的高性能的常驻内存型API和Web应用服务框架

    摘要:是一个基于扩展实现的轻量级高性能的常驻内存型的和应用服务框架高度封装了,,服务器,以及基于实现可扩展的服务,同时支持包方式安装部署项目。基于实用,抽象事件处理类,实现与底层的回调的解耦,支持同步异步调用,内置等常用组件等。 swoolefy swoolefy是一个基于swoole扩展实现的轻量级高性能的常驻内存型的API和Web应用服务框架,高度封装了http,websocket,ud...

    lewinlee 评论0 收藏0
  • laravel 自定义服务提供者

    摘要:看起来很麻烦是吧,完全可以封装一个函数,直接调用就可以了,没有必要自定义服务提供者创建契约。将自定义的服务提供者做如下修改修改了契约的绑定,所有使用契约进行依赖注入的实例,都会由实例切换到实例。 导语 laravel 的服务提供者,是框架的核心,提供了路由、日志、缓存等功能。这里要实现的需求是使用第三方 API 获取天气情况,涉及到服务提供者、契约、依赖注入等方面。相关内容可以通过下方...

    Pikachu 评论0 收藏0
  • Laravel与Repository Pattern(仓库模式)——概念篇

    摘要:确实,要独立一个操作层出来,确实会增加大量代码,非常繁琐。如果你是小项目,未必需要使用这一模式。但如果是年以上的复杂大型项目,这种模式的好处就比较明显了。如果你是纯新手,建议你暂时不要往下看,先把用得比较熟练后再回来学习。 为什么要学习Repository Pattern(仓库模式) Repository 模式主要思想是建立一个数据操作代理层,把controller里的数据操作剥离出来...

    tomener 评论0 收藏0

发表评论

0条评论

lentrue

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<