QueryPHP v1-rc.2 多语言文档系统及文档更新

QueryPHP v1.0.0-rc.1 和 2,这两版本主要推进文档的编写进程,第一个 rc 版本实现多国语言文档,rc.2 开发几十篇文档。

QueryPHP 1.0.0 正式版本的功能基本上已经实现,只需要花点时间做一下收一下尾巴。 在正式版本发布前,需要将文档至少完善出第一个简版本,为实现这一目标,QueryPHP 开发了多语言文档系统,基于测试即文档的理念,生成 Markdown与 VuePress 结合输出用户 API 文档。

关于 QueryPHP

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

百分之百单元测试覆盖直面 Bug,我们一直致力于创造高品质的产品 level level leevel,依托 Swoole 协程提升业务性能,此刻未来逐步渐进。 我们的愿景是USE LEEVEL WITH SWOOLE DO BETTER, 让您的业务撑起更多的用户服务。

更新日志

  • 【framework】优化点 call_user_func_array 和 call_user_func 提供更好的性能。
  • 【framework】多语言文档生成已经成功实现
  • 【framework】将早年的 markdown 文档全部重写到新的文档生成系统
  • 【framework】完善集合文档
  • 【framework】新增 URL 生成文档
  • 【framework】新增命名空间文档
  • 【framework】新增类型文档
  • 【framework】新增验证器文档
  • 【framework】新增树文档

RoadMap

  • 【framework】Beta 6 是 QueryPHP 的最后一个 beta 版本,整个框架功能冻结。
  • 【framework】RC 版本只修复 BUG、单元测试 和文档完善,不排除可能有一些必要的功能微调。
  • 【framework】v1.0.0 正式版本将随 PHP 7.4 版本后发布 https://wiki.php.net/todo/php74,计划是在 2019.12 或者 2020.01 发布。

安装

composer create-project hunzhiwange/queryphp myapp dev-master
php leevel server <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

多语言文档

普通文档

以 Doc.php 结尾的普通文档,方法以 doc 开始的将会自动生成。

https://www.114.ms/docs/template/

https://github.com/hunzhiwange/framework/blob/master/tests/View/SummaryDoc.php

<?php

declare(strict_types=1);

namespace Tests\View;

/**
 * @api(
 *     title="Summary",
 *     zh-CN:title="概述",
 *     zh-TW:title="概述",
 *     path="template/README",
 *     description="",
 * )
 */
class SummaryDoc
{
    /**
     * @api(
     *     title="Code 语法",
     *     description="侧重简单实用。",
     *     note="",
     *     lang="html",
     * )
     */
    public function doc1()
    {
    }
}

单元测试即文档

QueryPHP 在 3 年里沉淀了 3500 例测试用例,这些测试用例保证了框架的代码的品质。测试用例是最好的活文档,基于测试即文档的理念,我们通过给测试用例注解的方式来自动化文档。

https://www.114.ms/docs/database/query/where.html

https://github.com/hunzhiwange/framework/blob/master/tests/Database/Query/WhereTest.php

<?php

declare(strict_types=1);

namespace Tests\Database\Query;

use Tests\Database\DatabaseTestCase as TestCase;

/**
 * @api(
 *     title="Query lang.where",
 *     zh-CN:title="查询语言.where",
 *     path="database/query/where",
 *     description="",
 * )
 */
class WhereTest extends TestCase
{
    /**
     * @api(
     *     zh-CN:title="where 查询条件",
     *     zh-CN:description="最基本的用法为字段 (表达式) 值。",
     *     note="",
     * )
     */
    public function testBaseUse(): void
    {
        $connect = $this->createDatabaseConnectMock();

        // 字段 (表达式) 值
        $sql = <<<'eot'
            [
                "SELECT `test_query`.* FROM `test_query` WHERE `test_query`.`id` = 1",
                [],
                false,
                null,
                null,
                []
            ]
            eot;

        $this->assertSame(
            $sql,
            $this->varJson(
                $connect
                    ->table('test_query')
                    ->where('id', '=', 1)
                    ->findAll(true)
            )
        );
    }
}

文档生成 markdown

php leevel make:docwithin tests/Database/Query/WhereTest.php
Class Tests\Database\Query\WhereTest was generate succeed at /data/codes/queryphp.com/docs/docs/database/query/where.md.
A total of 1 files generate succeed.
Class Tests\Database\Query\WhereTest was generate succeed at /data/codes/queryphp.com/docs/zh-CN/docs/database/query/where.md.
A total of 1 files generate succeed.
Class Tests\Database\Query\WhereTest was generate succeed at /data/codes/queryphp.com/docs/zh-TW/docs/database/query/where.md.
A total of 1 files generate succeed.

 

猜你喜欢

转载自www.oschina.net/news/111617/queryphp-1-rc2-released