(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
La clase dotnet permite instanciar una clase desde un ensamblado .NET y llamar y acceder a sus propiedades, si la clase y los métodos y las propiedades son » visible para COM.
Ni la instanciación de clases estáticas ni la llamada de métodos estáticos es
soportada.
La instanciación de clases genéricas como
System.Collections.Generic.List
tampoco está soportada.
Algunas clases .Net no implementan IDispatch, por lo que aunque pueden ser instanciadas, llamar a métodos o acceder a propiedades en estas clases no es soportado.
Nota:
Se debe instalar el motor de ejecución .Net en el servidor web para aprovechar esta funcionalidad.
Nota:
Anterior a PHP 8.0.0, el framework .Net 4.0 y versiones posteriores no son soportados por la clase dotnet. Si los ensamblados han sido registrados con regasm.exe, las clases pueden ser instanciadas como objetos com, sin embargo. A partir de PHP 8.0.0, el framework .Net 4.0 y las versiones posteriores son soportados a través de la directiva php.ini com.dotnet_version.
El objeto devuelto es un objeto sobrecargado, lo que significa que PHP no ve los métodos fijados como lo hace con las clases normales; en su lugar, todo acceso a propiedades o métodos se pasa a través de COM y desde allí a DOTNET. En otras palabras, el objeto .Net se mapea a través de la capa de interoperabilidad COM proporcionada por el motor de ejecución .Net.
Una vez que se ha creado un objeto dotnet, PHP lo trata de la misma manera que cualquier otro objeto COM; se aplican las mismas reglas.
Ejemplo #1 Ejemplo dotnet
<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
?>