Reflection
- Введение
- Установка и настройка
- Предопределенные константы
- Примеры
- Расширение
- Reflection — Класс Reflection
- Reflection::export — Экспортирует Reflection
- Reflection::getModifierNames — Получение имен модификаторов
- ReflectionClass — Класс ReflectionClass
- 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
- ReflectionZendExtension — Класс ReflectionZendExtension
- ReflectionZendExtension::__clone — Копирующий конструктор
- ReflectionZendExtension::__construct — Конструктор
- ReflectionZendExtension::export — Экспорт
- ReflectionZendExtension::getAuthor — Получение автора
- ReflectionZendExtension::getCopyright — Получение строки авторских прав
- ReflectionZendExtension::getName — Получение строки имени
- ReflectionZendExtension::getURL — Получение URL
- ReflectionZendExtension::getVersion — Получение номера версии
- ReflectionZendExtension::__toString — Преобразование в строку
- ReflectionExtension — Класс ReflectionExtension
- ReflectionExtension::__clone — Клонирует объект
- ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension
- ReflectionExtension::export — Экспортирует модуль
- ReflectionExtension::getClasses — Возвращает классы
- ReflectionExtension::getClassNames — Получение имен классов
- ReflectionExtension::getConstants — Получение констант
- ReflectionExtension::getDependencies — Получение зависимостей
- ReflectionExtension::getFunctions — Получение функций расширения
- ReflectionExtension::getINIEntries — Получение ini-настроек расширения
- ReflectionExtension::getName — Получение имени расширения
- ReflectionExtension::getVersion — Получение версии расширения
- ReflectionExtension::info — Вывод информации о расширении
- ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным
- ReflectionExtension::isTemporary — Определяет, является ли расширение временным
- ReflectionExtension::__toString — Преобразование в строку
- ReflectionFunction — Класс ReflectionFunction
- ReflectionFunction::__construct — Конструктор класса ReflectionFunction
- ReflectionFunction::export — Экспорт функции
- ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции
- ReflectionFunction::invoke — Вызывает функцию
- ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов
- ReflectionFunction::isDisabled — Проверяет, что функция отключена
- ReflectionFunction::__toString — Представление в виде строки
- ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
- ReflectionFunctionAbstract::__clone — Копирующий конструктор
- ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope associated to the closure
- ReflectionFunctionAbstract::getClosureThis — Возвращает указатель this замыкания
- ReflectionFunctionAbstract::getDocComment — Получает документируемый комментарий
- ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции
- ReflectionFunctionAbstract::getExtension — Получает информацию о расширении
- ReflectionFunctionAbstract::getExtensionName — Получение имени расширения
- ReflectionFunctionAbstract::getFileName — Получает имя файла
- ReflectionFunctionAbstract::getName — Получает имя функции
- ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен
- ReflectionFunctionAbstract::getNumberOfParameters — Получает количество аргументов
- ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных аргументов
- ReflectionFunctionAbstract::getParameters — Получает аргументы
- ReflectionFunctionAbstract::getShortName — Получает короткое имя функции
- ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки
- ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные
- ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен
- ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием
- ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
- ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator
- ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
- ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем
- ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
- ReflectionFunctionAbstract::__toString — Преобразование в строку
- ReflectionMethod — Класс ReflectionMethod
- ReflectionMethod::__construct — Конструктор класса ReflectionMethod
- ReflectionMethod::export — Экспорт отраженного метода
- ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
- ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отображенный метод
- ReflectionMethod::getModifiers — Получает модификаторы метода
- ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
- ReflectionMethod::invoke — Вызов
- ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
- ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
- ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
- ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
- ReflectionMethod::isFinal — Проверяет, может ли метод иметь наследников (final)
- ReflectionMethod::isPrivate — Проверяет, является ли метод частным (private)
- ReflectionMethod::isProtected — Проверяет, является ли метод защищенным (protected)
- ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным (public)
- ReflectionMethod::isStatic — Проверяет, является ли метод статическим
- ReflectionMethod::setAccessible — Делает метод доступным
- ReflectionMethod::__toString — Возвращает строковое представление объекта Reflection method
- ReflectionObject — Класс ReflectionObject
- ReflectionObject::__construct — Конструктор класса ReflectionObject
- ReflectionObject::export — Экспорт
- ReflectionParameter — Класс ReflectionParameter
- ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для аргумента
- ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
- ReflectionParameter::__clone — Копирующий конструктор
- ReflectionParameter::__construct — Конструктор класса
- ReflectionParameter::export — Экспорт
- ReflectionParameter::getClass — Получение класса
- ReflectionParameter::getDeclaringClass — Получение объявляющего класса
- ReflectionParameter::getDeclaringFunction — Получение объявляющей функции
- ReflectionParameter::getDefaultValue — Получение значения по умолчанию аргумента
- ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
- ReflectionParameter::getName — Получение имени аргумента
- ReflectionParameter::getPosition — Получение позиции аргумента
- ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения
- ReflectionParameter::isCallable — Returns whether parameter MUST be callable
- ReflectionParameter::isDefaultValueAvailable — Проверяет доступно ли значение по умолчанию аргумента
- ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is constant
- ReflectionParameter::isOptional — Проверка, является ли аргумент необязательным
- ReflectionParameter::isPassedByReference — Проверяет, что аргумент передан по ссылке
- ReflectionParameter::__toString — Преобразование в строку
- ReflectionProperty — Класс ReflectionProperty
- ReflectionProperty::__clone — Копирующий конструктор
- ReflectionProperty::__construct — Конструктор класса ReflectionProperty
- ReflectionProperty::export — Экспорт
- ReflectionProperty::getDeclaringClass — Получение объявляющего класса
- ReflectionProperty::getDocComment — Получение документируемого комментария
- ReflectionProperty::getModifiers — Получение модификаторов
- ReflectionProperty::getName — Получение имени свойства
- ReflectionProperty::getValue — Получение значения
- ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
- ReflectionProperty::isPrivate — Проверяет, является ли свойство частным (private)
- ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным (protected)
- ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным (public)
- ReflectionProperty::isStatic — Проверка, является ли свойство статическим
- ReflectionProperty::setAccessible — Задание доступности свойства
- ReflectionProperty::setValue — Задание значения свойству
- ReflectionProperty::__toString — Преобразование в строку
- Reflector — Интерфейс Reflector
- Reflector::export — Экспорт
- Reflector::__toString — Представление в виде строки
- ReflectionException — Класс ReflectionException
Коментарии
Here is a code snippet for some of us who are just beginning with reflection. I have a simple class below with two properties and two methods. We will use reflection classes to populate the properties dynamically and then print them:
<?php
class A
{
public $one = '';
public $two = '';
//Constructor
public function __construct()
{
//Constructor
}
//print variable one
public function echoOne()
{
echo $this->one."\n";
}
//print variable two
public function echoTwo()
{
echo $this->two."\n";
}
}
//Instantiate the object
$a = new A();
//Instantiate the reflection object
$reflector = new ReflectionClass('A');
//Now get all the properties from class A in to $properties array
$properties = $reflector->getProperties();
$i =1;
//Now go through the $properties array and populate each property
foreach($properties as $property)
{
//Populating properties
$a->{$property->getName()}=$i;
//Invoking the method to print what was populated
$a->{"echo".ucfirst($property->getName())}()."\n";
$i++;
}
?>