drupol/anonymize

将对象/类转换为匿名类。

资助包维护!
drupol

1.1.4 2019-07-23 18:50 UTC

This package is auto-updated.

Last update: 2024-09-15 08:18:39 UTC


README

Latest Stable Version GitHub stars Total Downloads Build Status Scrutinizer code quality Code Coverage Mutation testing badge License Say Thanks! Donate!

Anonymize

描述

将常规类转换为匿名类。

特性

  • 将公共属性和方法转换为动态类和属性。

要求

  • PHP >= 7.1.3

安装

composer require drupol/anonymize

使用

使用对象

<?php

include 'vendor/autoload.php';

class Hello
{
    public $property = 'YES!';

    public function say()
    {
        echo 'Hello ' . $this->world();
    }

    private function world()
    {
        return 'world!';
    }
}

$class = new Hello();
$class->say(); // Hello world!

$anonymizedClass = \drupol\Anonymize\Anonymize::convertToAnonymous($class);

$anonymizedClass::addDynamicMethod('say', function () use ($anonymizedClass) {
    echo 'Goodbye ' . $anonymizedClass->world();
});

$anonymizedClass::addDynamicMethod('world', function () {
    return 'universe!';
});

$anonymizedClass->say(); // Goodbye universe!

API

<?php

/**
 * Convert an object into an anonymous object.
 *
 * @param \stdClass $object
 *   The object to convert.  
 *
 * @return Anonymize
 */
AnonymizeTrait::convertToAnonymous($object);

库的其余 API 依赖于并继承自 DynamicObjects

代码质量、测试和基准测试

每次向库中引入更改时,Travis CI 都会运行测试和基准测试。

库中的测试是用 PHPSpec 编写的。您可以在 spec 目录中查看它们。运行 composer phpspec 触发测试。

在每次提交之前,会使用 GrumPHP 执行一些检查,运行 ./vendor/bin/grumphp run 进行手动检查。

PHPInfection 用于确保您的代码经过适当测试,运行 composer infection 测试您的代码。

贡献

请自由地向此库发送 Github pull 请求。我反应很快哦 :-)

赞助商