La classe dotnet

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introduction

La classe dotnet autorise à instancier une classe depuis un ensemble .NET et d'appeler et accéder à ses propriétés, si la classe et les méthodes et les propriétés sont » visible pour COM.

Ni l'instantiation de classes statiques ni l'appel de méthodes statiques ne sont supportés. L'instanciation de classes génériques telles que System.Collections.Generic.List n'est pas non plus prise en charge.

Quelques classes .Net n'implémentent pas IDispatch, donc bien qu'elles peuvent être instanciées, appeler des méthodes ou accéder aux propriétés sur ces classes n'est pas supporté.

Note:

Il faut installer le moteur d'exécution .Net sur le serveur web pour tirer avantage de cette fonctionnalité.

Note:

Antérieur à PHP 8.0.0, le framework .Net 4.0 et ultérieurs ne sont pas supportés par la classe dotnet. Si des assemblages ont été enregistrés avec regasm.exe, les classes peuvent être instanciées en tant qu'objets com, cependant. À partir de PHP 8.0.0, le framework .Net 4.0 et les versions ultérieures sont supportés via la directive php.ini com.dotnet_version.

Synopsis de la classe

class dotnet extends variant {
/* Méthodes */
public __construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)
}

Méthodes surchargées

L'objet retourné est un objet surchargé, ceci signifie que PHP ne voit pas les méthodes fixes comme il le fait avec les classes normales ; à la place tout accès de propriété ou méthode sont passés à travers COM et à partir de là à DOTNET. Dans d'autres mots, l'objet .Net est mappé via la couche d'interopérabilité COM fournie par le moteur d'exécution .Net.

Une fois qu'on a créé un objet dotnet, PHP le traite de façon identique à n'importe quel autre objet COM ; les mêmes règles s'appliquent.

Exemples dotnet

Exemple #1 Exemple dotnet

<?php
$stack
= new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo
$stack->Pop() . $stack->Pop();
?>

Sommaire