ilexn/config-object

此包已被 废弃 并不再维护。未建议替代包。

配置对象

0.2.1 2021-12-03 09:06 UTC

README

创建数据值对象的生成器。

Latest Stable Version Total Downloads

GitHub Action Coverage Status Infection MSI

安装

composer require ilexn/config-object

使用示例

<?php

declare(strict_types=1);

use Example\ConfigObject\GenNameCreate;
use Ilex\ConfigObject\CreateMode;
use Ilex\ConfigObject\GeneratorManager;
use Ilex\ConfigObject\Setting;
use Ilex\ConfigObject\Tests\Fake\One;

include 'vendor/autoload.php';

$setting = new class extends Setting {

    public function getTargetPath(): string
    {
        return __DIR__ . '/example';
    }

    public function getTargetNamespace(): string
    {
        return 'Example\ConfigObject';
    }

    public function getTargetClassName(): string
    {
        return 'GenNameCreate';
    }

    public function getData(): One
    {
        return new One();
    }

    public function allowClass(): array
    {
        return [One::class];
    }
};


$mode = CreateMode::each();
$generator = new \Ilex\ConfigObject\Generator();

$manager = new GeneratorManager($mode, $generator);
$manager->generate($setting);

$g = new GenNameCreate();
var_dump($g->getData()->getTargetPath());

基准测试

基准测试 主题 集合 修订次数 迭代次数 峰值内存 模式 标准差
JsonBenchmark benchBase 0 1000 5 2.417mb 25.600μs ±1.27%
JsonBenchmark benchEach 0 1000 5 5.216mb 287.363μs ±0.73%
JsonBenchmark benchOnce 0 1000 5 2.417mb 5.764μs ±2.15%
JsonBenchmark benchNone 0 1000 5 2.417mb 1.923μs ±3.01%

待办事项

[ ] 添加通用方法。