darling/php-reflection-utilities

一组可用于辅助PHP反射的PHP类

v1.1.2 2023-11-22 22:27 UTC

README

一组可用于辅助PHP反射的PHP类。

此库使用了以下库

Darling\PHPUnitTestUtilities

Darling\PHPTextTypes

概览

安装

composer require darling/php-reflection-utilities

PHPReflectionUtilities库提供了以下类。

这些类可以直接使用或扩展。

Darling\PHPReflectionUtilities\classes\utilities\Reflection

Reflection可以用来获取关于反射类或对象实例的信息。

例如

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPReflectionUtilities\classes\utilities\Reflection;
use \Darling\PHPTextTypes\classes\strings\ClassString;

$reflection = new Reflection(new ClassString(Reflection::class));

var_dump($reflection->type()->__toString());

var_dump($reflection->methodNames(Reflection::IS_PUBLIC));

var_dump($reflection->methodParameterNames('methodParameterNames'));

var_dump($reflection->methodParameterTypes('methodParameterTypes'));

var_dump($reflection->propertyNames(Reflection::IS_PRIVATE));

var_dump($reflection->propertyTypes(Reflection::IS_PRIVATE));

var_dump($reflection->type());

Darling\PHPReflectionUtilities\classes\utilities\ObjectReflection

ObjectReflection是专门反射对象实例的Reflection。

例如

<?php

require __DIR__ . '/vendor/autoload.php';

use \Darling\PHPReflectionUtilities\classes\utilities\ObjectReflection;

$instanceToReflect = new ArrayIterator(array('test1', 'test2', 'test3'));

$objectReflection = new ObjectReflection($instanceToReflect);

var_dump($objectReflection->propertyValues());

var_dump($objectReflection->methodNames());