COM_EVENT_SINK |
COM : Baisse l'événement |
PHP 4.2.0+ |
Syntaxe
function com_event_sink($comobject, $sinkobject);
|
function com_event_sink($comobject, $sinkobject, $sinkinterface);
|
Paramètres
Nom |
Description |
$comobject |
Ce paramètre permet d'indiquer la classe de l'objet COM. |
$sinkobject |
Ce paramètre permet d'indiquer la classe de l'objet PHP. |
$sinkinterface |
Ce paramètre permet d'indiquer l'interface PHP. |
Retour
Valeur |
Description |
FALSE |
Cette valeur permet d'indiquer qu'une erreur est survenu. |
TRUE |
Cette valeur permet d'indiquer que l'opération s'est correctement effectué. |
Description
Cette fonction permet d'effectuer la connexion des événements d'un objet de composante COM vers un objet du langage de programmation PHP.
Remarques
- Compatibilité et disponibilité : La fonction com_event_sink est disponible depuis PHP 4.2.0 et est présente dans les versions ultérieures, y compris
PHP 5, 7 et 8.
- Structure de la classe d'écouteur : L'objet $sinkobject doit être une instance d'une classe PHP dont les méthodes correspondent aux noms des événements de
l'interface COM cible. Par exemple, pour gérer l'événement ProgressChange, la classe doit définir une méthode ProgressChange.
- Utilisation de com_print_typeinfo : Pour faciliter la création de la classe d'écouteur, la fonction com_print_typeinfo peut être utilisée. Elle génère un modèle
de classe basé sur les informations de type de l'objet COM, simplifiant ainsi le processus de définition des méthodes appropriées.
- Gestion des événements dans un serveur Web : Il est déconseillé d'utiliser com_event_sink dans un contexte de serveur Web. En effet, la gestion des événements
COM peut nécessiter un processus léger dédié, ce qui n'est pas compatible avec le modèle de traitement des requêtes des serveurs Web.
- Gestion de la boucle d'événements : Après avoir établi la liaison des événements, il est essentiel de maintenir la boucle d'événements en appelant périodiquement
com_message_pump(). Cette fonction traite les messages COM entrants et assure la réception et le traitement des événements.
- Limitations avec exit() : Avant PHP 8.0.0, appeler exit() depuis un gestionnaire d'événements pouvait entraîner le plantage de PHP. Pour contourner cette
limitation, il est recommandé de lancer une exception dans le gestionnaire d'événements, de la capturer dans le code principal et d'appeler exit() à ce moment-là.
- Exemple d'utilisation : Un exemple typique consiste à interagir avec Internet Explorer via COM. En créant une
instance de InternetExplorer.Application et en liant les événements à une classe d'écouteur, il est possible de gérer des événements tels que le changement de progression
du téléchargement ou la complétion du document.
Dernière mise à jour : Mercredi, le 25 mars 2015