Класс ReflectionClass
(PHP 5)
Введение
Класс ReflectionClass сообщает информацию о классе.
Обзор классов
ReflectionClass
implements
Reflector
{
/* Константы */
/* Свойства */
public
$name
;
/* Методы */
__construct
( mixed
}$argument
)Свойства
- name
-
Имя класса. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.
Предопределенные константы
Модификаторы ReflectionClass
ReflectionClass::IS_IMPLICIT_ABSTRACT
-
Указывает, что класс является абстрактным, потому что он содержит абстрактные методы.
ReflectionClass::IS_EXPLICIT_ABSTRACT
-
Указывает, что класс является абстрактным, потому что так указано при его описании.
ReflectionClass::IS_FINAL
-
Указывает, что класс является окончательным (final) class.
Содержание
- ReflectionClass::__construct — Создаёт объект класса ReflectionClass
- ReflectionClass::export — Экспортирует класс
- ReflectionClass::getConstant — Возвращает определенную константу
- ReflectionClass::getConstants — Возвращает константы
- ReflectionClass::getConstructor — Возвращает конструктор класса
- ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию
- ReflectionClass::getDocComment — Возвращает doc-блоки комментариев
- ReflectionClass::getEndLine — Возвращает номер последней строки
- ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определенного в классе
- ReflectionClass::getExtensionName — Возвращает имя расширения, определенного в классе
- ReflectionClass::getFileName — Возвращает имя файла, в котором объявлен класс
- ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов
- ReflectionClass::getInterfaces — Возвращает интерфейсы
- ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса
- ReflectionClass::getMethods — Возвращает список методов в виде массива
- ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса
- ReflectionClass::getName — Возвращает имя класса
- ReflectionClass::getNamespaceName — Возвращает название пространства имён
- ReflectionClass::getParentClass — Возвращает родительский класс
- ReflectionClass::getProperties — Возвращает свойства
- ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса
- ReflectionClass::getShortName — Возвращает короткое имя
- ReflectionClass::getStartLine — Возвращает номер начальной строки
- ReflectionClass::getStaticProperties — Возвращает static свойства
- ReflectionClass::getStaticPropertyValue — Возвращает значение static свойства
- ReflectionClass::getTraitAliases — Возвращает массив trait-псевдонимов
- ReflectionClass::getTraitNames — Возвращает массив trait-имён, задействованных в этом классе
- ReflectionClass::getTraits — Возвращает массив traits, задействованных в этом классе
- ReflectionClass::hasConstant — Проверяет, задана ли константа
- ReflectionClass::hasMethod — Проверяет, задан ли метод
- ReflectionClass::hasProperty — Проверяет, задано ли свойство
- ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс
- ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён
- ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным
- ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс
- ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
- ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
- ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
- ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
- ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро
- ReflectionClass::isIterateable — Проверяет, является ли класс итерируемым
- ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом
- ReflectionClass::isTrait — Проверяет, является ли класс trait
- ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским
- ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами
- ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами
- ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора
- ReflectionClass::setStaticPropertyValue — Устанавливает значение static-свойства
- ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения, относящиеся к переменным и типам
- Введение
- Установка и настройка
- Предопределенные константы
- Примеры
- Расширение
- Класс Reflection
- Класс ReflectionClass
- Класс ReflectionZendExtension
- Класс ReflectionExtension
- Класс ReflectionFunction
- Класс ReflectionFunctionAbstract
- Класс ReflectionMethod
- Класс ReflectionObject
- Класс ReflectionParameter
- Класс ReflectionProperty
- ReflectionType
- ReflectionGenerator
- Интерфейс Reflector
- Класс ReflectionException
Коментарии
To reflect on a namespaced class in PHP 5.3, you must always specify the fully qualified name of the class - even if you've aliased the containing namespace using a "use" statement.
So instead of:
<?php
use App\Core as Core;
$oReflectionClass = new ReflectionClass('Core\Singleton');
?>
You would type:
<?php
use App\Core as Core;
$oReflectionClass = new ReflectionClass('App\Core\Singleton');
?>
Unserialized reflection class cause error.
<?php
/**
* abc
*/
class a{}
$ref = new ReflectionClass('a');
$ref = unserialize(serialize($ref));
var_dump($ref);
var_dump($ref->getDocComment());
// object(ReflectionClass)#2 (1) {
// ["name"]=>
// string(1) "a"
// }
// PHP Fatal error: ReflectionClass::getDocComment(): Internal error: Failed to retrieve the reflection object
?>
Reflecting an alias will give you a reflection of the resolved class.
<?php
class X {
}
class_alias('X','Y');
class_alias('Y','Z');
$z = new ReflectionClass('Z');
echo $z->getName(); // X
?>
In order to get class attributes look here (php8)
https://www.php.net/manual/en/language.attributes.reflection.php