Introduction
COM est un acronyme pour Component Object Model;
c'est une couche orientée objet (et services associés) au-dessus de
DCE RPC (un standard ouvert) qui
définit une convention de nommage commune permettant à un code écrit en
n'importe quel langage de communiquer avec du code écrit dans un autre
langage, pour peu que ces deux langages soient compatibles avec COM.
Les codes n'ont pas besoin de faire partie du même exécutable. Le code peut
être chargé à partir d'une DLL, trouvé dans un autre processus fonctionnant
sur le même serveur, ou, avec DCOM (Distributed COM), trouvé sur une machine
distante, sans même que le code ait à savoir où il se trouve.
Il y a une partie de COM connue sous le nom d'OLE Automation qui comprend un
jeu d'interfaces COM qui permettent une liaison lâche avec les objets COM, afin
qu'ils puissent être introspectés et appelés en cours d'exécution sans savoir
au moment de la compilation comment l'objet fonctionne. L'extension COM de PHP
utilise les interfaces OLE Automation pour permettre de créer et appeler des
objets compatibles depuis les scripts. Techniquement parlant, cela devrait
vraiment s'appeler "the OLE Automation Extension for PHP",
puisque tous les objets COM ne sont pas forcément compatibles OLE.
Maintenant, pourquoi vouloir ou devoir utiliser COM ? COM est
l'une des méthodes les plus utilisées pour faire communiquer des applications
et des composants sur les plates-formes Windows. En utilisant COM, il est possible
d'ouvrir un document Microsoft Word, remplir un fichier de gabarit et le sauvegarder
pour l'envoyer par courrier au visiteur. Il est aussi possible d'utiliser COM
pour effectuer des tâches administratives sur le réseau et configurer
IIS ; ce ne sont que les utilisations les plus habituelles, il est possible de faire
beaucoup plus avec COM.
De plus, nous supportons l'instanciation et la création d'assemblées
.Net utilisant une couche d'interopérabilité COM fournie par Microsoft.