Articles of отражения

Непоследовательные результаты с API PHP Reflection

У меня есть приложение, которое отлично работает на Windows и Mac, которое использует PHP5 Reflection API. Я попытался развернуть приложение на Linux-машине (ящик CentOS, на котором работает PHP 5.3.6 -production server), только чтобы найти, что функция ReflectionMethod::getDocComment() ничего не возвращает. Некоторое время я исследовал и обнаружил, что концы линий были потенциальным виновником. Я использовал утилиту […]

Как получить все заявления использования, объявленные в файле класса PHP

Допустим, у меня есть следующий класс: <?php namespace ImTheVendor\Project5; use ImTheVendor\Project1\SomeClass, ImTheVendor\Project2\SomeOtherClass; use ImTheVendor\Project5\SomeClass; class Something { } Как я могу получить все пространства имен, объявленные с использованием инструкции? Должен ли я повторно использовать сам файл или есть ли более простой способ сделать это?

PHP Reflection: как узнать, унаследован ли метод / свойство / константа от свойства?

Я хочу исключить все унаследованные методы из признаков из списка , которые не переопределяются в классе. Итак, как узнать, унаследован ли элемент класса от признака? Да, я могу проверить это так: if ($trait->hasMethod($methodName) || $ref->getTraitAliases()[$methodName] !== null) { // } Но что, если метод признака переоценивается в классе? Как это знать? Один из способов – […]

обнаружение бесконечной рекурсии массива в PHP?

Я только что переработал свой алгоритм обнаружения рекурсии в моем проекте-проекте dump_r () https://github.com/leeoniya/dump_r.php обнаружение рекурсии объекта не слишком сложно – вы используете spl_object_hash (), чтобы получить уникальный внутренний идентификатор экземпляра объекта, сохранить его в dict и сравнить с ним при сбрасывании других узлов. для обнаружения рекурсии массива, я немного озадачен, я не нашел ничего […]

Определение, если переменная является допустимым закрытием в PHP

Используя следующую функцию: function is_closure($t) { return ( !is_string($t) && is_callable($t)); } Может ли это вернуться для чего-либо еще, чем анонимная функция закрытия? Если да, то каков был бы правильный способ определить, является ли переменная закрытием? Большое спасибо

Поиск файла PHP (во время выполнения), в котором был определен класс

Есть ли отражение / интроспекция / магия в PHP, которая позволит вам найти файл PHP, в котором определен конкретный класс (или функция)? Другими словами, у меня есть имя класса PHP или экземпляр объекта. Я хочу передать это чему-то (функции, классу Reflection и т. Д.), Которые вернут путь к файловой системе, где был определен класс. /path/to/class/definition.php […]

Intereting Posts