cwola/reflector

提供简单的反射(Cwola 库)。

v1.0.1 2022-07-10 04:38 UTC

This package is auto-updated.

Last update: 2024-09-12 05:17:21 UTC


README

PHP 反射(Cwola 库)。

概述

为PHP提供简单的反射。

要求

  • PHP8.0+

安装

composer require cwola/reflector

用法

<?php

use Cwola\Reflector\ReflectionClass;

class Foo {
    /**
     * @var string
     */
    private string $privateString = 'Private!!';

    /**
     * @param string $text
     *
     * @return string
     */
    private function privateMethod(string $text): string {
        return 'Private: ' . $text;
    }
}

$foo = new Foo;
$reflector = ReflectionClass::make($foo);

// Property
$reflectionPrivateProperty = $reflector->property('privateString')->accessible(true);
echo $reflectionPrivateProperty->get();  // Private!!
$reflectionPrivateProperty->set('Modified');
echo $reflectionPrivateProperty->get();  // Modified

// Method
$reflectionPrivateMethod = $reflector->method('privateMethod')->accessible(true);
echo $reflectionPrivateMethod->call('hijack');  // Private: hijack

// call reflection method
$reflectionPrivateMethod->isConstructor();  // false

许可证

MIT