Reflection API. ReflectionProperty.
Мы уже рассмотрели отражение классов и отражение методов, а в этой статье мы рассмотрим отражение свойств или ReflectionProperty.
Итак, в файле index.php пропишем следующее:
<?php
include 'user.php';
$rp = new ReflectionProperty('Users\User', 'data');
echo '<pre>';
print_r(get_class_methods($rp));
echo '</pre>';
?>
В конструктор класса ReflectionProperty первым параметром передаем название класса, а вторым - свойство в виде строки.
Если вы посмотрите, что выведет код выше, то увидите, что методов у класса ReflectionProperty не так уж и много.
<?php
$rp->getName(); // возвращает имя свойства
$rp->getValue(); // возвращает значение свойства
$rp->setValue(); // устанавливает значение свойства
$rp->isPublic(); // публичный? Если да, то вернется 1
$rp->isProtected(); // защищенный?
$rp->isPrivate(); // приватный?
$rp->isStatic(); // статичный?
$rp->isDefault(); // установлено значение по-умолчанию?
$rp->getModifiers(); // возвращает модификаторы
$rp->setAccessible(true); // делает свойство доступным
?>
Вот, собственно, и все, что можно рассказать про отражение свойства. Это очень простая, но полезная вещь.
Итак, на этом все. Спасибо за внимание!
-
- Михаил Русаков
Комментарии (2):
Не могли бы вы обрисовать, где как правило применяется Reflection API при программировании веб-приложений?
Ответить
Посмотрите в интернете примеры применения Reflection API. Самый, наверное, распространенный пример - MVC движок. Т.е., когда разбирают url такого вида: site.ru/get/article/id/3 сохраняют контроллер и метод, а потом с помощью Reflection API вызывают их и делают нужные проверки. А вообще, просто знайте, что такая возможность есть и, если Вам это будет нужно, то Вы сможете вернуться к этим статьям и применить уже на практике.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.