dimayakovlev.ru


Как увидеть, что внутри COM-объекта в PHP

В PHP в Microsoft Windows можно работать с COM-объектами. Для этого надо подключить модуль COM, доступный только в Microsoft Windows и отключённый по умолчанию в текущей версии PHP. Но как разработчику увидеть, что внутри COM-объекта, с которым предстоит работать?

Казалось бы, в чём сложность — есть функция var_dump()? Но дело в том, что в случае с COM-объектом привычный способ вывести структурированную информацию о переменной с помощью функции var_dump() не сработает. В этом можно убедиться, выполнив следующий код.

<?php
  $obj = new COM('Word.Application');
  var_dump($obj);
?>

Результат использования функции var_dump() при попытке вывести информацию о COM-объекте в PHP

Но это не значит, что структура и содержание COM-объекта должно остаться тайной, которую нельзя увидеть разработчику. Для того, чтобы вывести структурированную информацию о COM-объекте, в модуле COM доступна специальная функция com_print_typeinfo().

После замены в предыдущем примере функции var_dump() на функцию com_print_typeinfo() будет получен желаемый результат.

<?php
  $obj = new COM('Word.Application');
  com_print_typeinfo($obj);
?>

Результат использования функции com_print_typeinfo() для вывода информации о COM-объекте в PHP

Прочитать подробнее о функции можно в официальной документации PHP: com_print_typeinfo().