(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
Класс dotnet позволяет создавать объекты из сборок .Net, вызывать их методы и использовать их свойства, если класс, методы и свойства » видимы для COM.
Ни создание экземпляров статических классов, ни вызов статических методов не поддерживаются.
Создание экземпляров универсальных классов, таких как System.Collections.Generic.List
, также не поддерживается.
Некоторые классы в .Net не реализуют IDispatch, поэтому, хотя их объекты можно создавать, вызов методов или доступ к свойствам этих классов не поддерживается.
Замечание:
Вам нужно установить библиотеки времени исполнения .Net на ваш веб-сервер, чтобы воспользоваться этой функцией.
Замечание:
До PHP 8.0.0 .Net framework 4.0 и более поздние версии не поддерживаются классом dotnet. Однако если сборки были зарегистрированы с помощью regasm.exe, классы могут быть созданы как объекты com. Начиная с PHP 8.0.0, .Net framework 4.0 и более поздние версии поддерживаются с помощью директивы php.ini com.dotnet_version.
Возвращаемый объект является перегруженным, то есть PHP не видит каких-либо фиксированных методов, как это происходит с обычными классами; вместо этого свойства и доступ к методам передаётся через COM, а оттуда в DOTNET. Другими словами, объект .Net отображается через уровень взаимодействия COM, предоставляемый библиотекой времени исполнения .Net.
Как только вы создали объект dotnet, PHP обрабатывает его идентично любому другому объекту COM; применяются все те же правила.
Пример #1 Пример использования dotnet
<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Привет ");
echo $stack->Pop() . $stack->Pop();
?>