drupol / anonymize
将对象/类转换为匿名类。
1.1.4
2019-07-23 18:50 UTC
Requires
- php: >= 7.1.3
- drupol/dynamicobjects: ^1
Requires (Dev)
README
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 请求。我反应很快哦 :-)