darling / php-reflection-utilities
一组可用于辅助PHP反射的PHP类
v1.1.2
2023-11-22 22:27 UTC
Requires
- php: ^8.1
- darling/php-text-types: ^1.0
- darling/php-unit-test-utilities: ^1.0
Requires (Dev)
README
一组可用于辅助PHP反射的PHP类。
此库使用了以下库
概览
安装
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());