Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 4.07 KB

README.md

File metadata and controls

43 lines (33 loc) · 4.07 KB

Alpa/EntityDetails. -Deprecated - A new application will be implemented

Исследует объект и предоставляет детальную информацию о нем и о его дочерних элементах.

Документацию по API Можно сформировать через PHPDocumentor v.3 Alpha-3

Быстрый старт.

Класс для работы:

Alpa\EntityDetails\ReflectInfo

Методы:

  • & getInfoClassRecurs(string|object & $class):array -анализирует указанный класс или класс объекта рекурсивно.
  • & getInfoArrayRecurs(array & $array):array -анализирует массивы рекурсивно.
  • & getInfoObjectRecurs(object & $object):object - анализирует объекты рекурсивно.
  • & getInfoObjectArrayRecurs (mixed $data): array|mixed - запускает анализ или для объекта или для массива. Если передан инной тип данных, то его же и возвратит.
  • repeatRecursiveDataIntoArray(mixed $data):array - проводит анализ объекта или массива без детальной информации рекурсивно.
  • excludeObjects($objects = []) - объекты которые необходимо исключить из парсинга. Как правило очень тяжелые объекты или объект реализующий в себе данный компонент (чтобы не поддавались анализу данные анализа).

Обозначения в сегментов результата.

Справедливо для вышеперечисленных методов кроме repeatRecursiveDataIntoArray

  • % - статический метод или свойство
  • * - protected метод или свойство
  • ** - private
  • *** - final
  • ~ - abstract method
  • ☢ - нестабильное свойство. свойство являющееся массивом и не может передается по ссылке, а следовательно может не выходить из петли (замыкания) при анализе.
  • property : Class - свойство property которое реализует объект класса Class
  • Class : ** private_property - свойство private_property которое принадлежит классу Class
  • Class : ** private_property:SClass - свойство private_property которое принадлежит классу Class и реализует объект класса SClass

Внимание: В целях анализа больших объектов, по возможности, все данные между собой передаются по ссылкам.
Это предназначено, чтобы не происходило переполнение памяти. Если результат будет храниться в памяти, то значения его сегментов могут меняться согласно выполняемому сценарию, а следовательно будет не достоверным.
Поэтому после анализа, результат необходимо или передавать в вывод (буфер вывода, файл, поток) или клонировать рекурсивно.
(возможно, в будущем будет создан метод клонирования такого объекта)

в качестве примера запустите в текущей директории в консоли composer install - чтобы установить автозагрузчик и запустите в браузере тест tests/test_ReflectInfo.php ваш браузер должен иметь предустановленное расширение для работы с json файлами.