COM |
Crée un objet OLE |
---|---|
PHP 4+ |
Syntaxe
function COM($ClassName) |
Paramètres
Nom | Description | |
---|---|---|
$ClassName | Ce paramètre permet d'indiquer la chaîne de caractères de la classe : | |
Classe | Description | |
ADODB.Command | Cette classe permet de définir l'objet envoyant des commandes SQL à une base de données | |
ADODB.Connection | Cette classe permet de définir l'objet de connexion à une base de données | |
ADODB.Recordset | Cette classe permet de définir l'objet d'enregistrement pour un objet de base de données | |
Excel.Application | Cette classe permet de définir l'objet d'application de Microsoft Excel | |
Outlook.Application | Cette classe permet de définir l'objet d'application de Microsoft Outlook | |
Powerpoint.Application | Cette classe permet de définir l'objet d'application de Microsoft PowerPoint | |
Scripting.FileSystemObject | Cette classe permet de définir l'objet permettant la gestion des fichiers systèmes | |
ShockwaveFlash.ShockwaveFlash.3 | Cette classe permet de définir l'objet de version du Flash Shockwave version 3 | |
ShockwaveFlash.ShockwaveFlash.4 | Cette classe permet de définir l'objet de version du Flash Shockwave version 4 | |
ShockwaveFlash.ShockwaveFlash.5 | Cette classe permet de définir l'objet de version du Flash Shockwave version 5 | |
ShockwaveFlash.ShockwaveFlash.6 | Cette classe permet de définir l'objet de version du Flash Shockwave version 6 | |
ShockwaveFlash.ShockwaveFlash.7 | Cette classe permet de définir l'objet de version du Flash Shockwave version 7 | |
Word.Application | Cette classe permet de définir l'objet d'application de Microsoft Word | |
Word.Basic | Cette classe permet de définir l'objet de base du Microsoft Word | |
Word.Document | Cette classe permet de définir l'objet de document de Microsoft Word | |
... | ... |
Description
Cette fonction permet de créer un objet unique OLE de Windows.
Remarques
- Interface avec les objets COM sous Windows : La fonction COM permet aux scripts PHP d'interagir avec des applications Windows exposant une interface COM, comme Microsoft Word, Excel ou Internet Explorer. Elle est particulièrement utile pour automatiser des tâches ou manipuler des documents sans intervention humaine.
- Nécessite l'activation de l'extension COM : Par défaut, l'extension COM est désactivée dans PHP pour des raisons de sécurité et de compatibilité. Il faut s'assurer qu'elle est activée dans php.ini avec la directive extension=php_com_dotnet.dll pour utiliser la fonction COM.
- Création d'objets COM avec le ProgID ou le CLSID : La fonction COM accepte un ProgID (exemple : "Excel.Application") ou un CLSID pour instancier un objet COM. Le ProgID est plus lisible et recommandé, mais le CLSID peut être utilisé si nécessaire, notamment pour des objets sans ProgID défini.
- Possibilité d'interagir avec VBA et OLE Automation : L'utilisation de COM en PHP permet d'exécuter des commandes similaires à celles de VBA dans les applications Microsoft Office. Par exemple, il est possible d'ouvrir un fichier Excel, modifier des cellules et enregistrer les modifications, tout cela via PHP.
- Problèmes de performance et de stabilité : L'utilisation de COM depuis PHP peut être lente et sujette à des plantages si la communication avec l'application COM échoue. Par exemple, l'instanciation de multiples objets Excel sans les libérer correctement peut entraîner une saturation mémoire et ralentir le serveur.
- Gestion des erreurs limitée : Les erreurs COM en PHP ne sont pas toujours faciles à détecter. Si une classe COM est introuvable ou si une méthode ne fonctionne pas, PHP peut générer une exception fatale ou renvoyer une erreur générique. Il est recommandé d'utiliser try-catch et error_reporting pour mieux diagnostiquer les problèmes.
- Accès aux propriétés et méthodes dynamiquement : Une fois l'objet COM instancié, ses méthodes et propriétés peuvent être appelées directement en PHP, comme s'il s'agissait d'un objet natif. Par exemple, $excel->Visible = true; affiche l'interface Excel, et $document->Save(); enregistre un fichier Word.
- Sécurité et restrictions sur les serveurs Web : L'exécution d'objets COM depuis PHP sur un serveur web (comme IIS) peut poser des problèmes de droits d'accès, car le processus PHP s'exécute sous un compte utilisateur restreint. Il faut souvent configurer les permissions des objets COM via dcomcnfg pour éviter des erreurs d'accès.
Exemple
L'exemple suivant permet de connaitre la version de «Microsoft Word» installé si l'objet COM est autorisé :
Dernière mise à jour : Mercredi, le 25 mars 2015