PHP puede ser usado para acceder a objetos COM y DCOM en plataformas Win32.
Si se trata de un DLL simple no hay forma aun de ejecutarlo desde PHP. Si el archivo DLL contiene un servidor COM es posible que pueda acceder a él si implementa la interfaz IDispatch.
Existen docenas de tipos VARIANT y combinaciones de ellos. La mayoría de ellos son soportados pero algunos aun deben ser implementados. Las matrices no están completamente soportadas. Solo las matrices unidimensionales de índice pueden ser pasadas entre PHP y COM. Si encuentra otros tipos que no sean soportados, por favor repórtelos como un bug (si aun no han sido reportados) y ofrezca tanta información como tenga disponible.
En general es posible, pero ya que PHP es usado frecuentemente como un lenguaje de scripting web, corre en el contexto de servidores web, por lo que objetos visuales nunca aparecerán en el escritorio de los servidores. Si usa PHP para una aplicación de scripting, p.ej. en conjunto con PHP-GTK, no hay limitaciones al acceder y manipular objetos visuales a través de COM.
No, no puede. Las instancias COM son tratadas como recursos y por lo tanto sólo están disponibles en el contexto de un script único.
La extensión COM lanza excepciones com_exception, las cuales puede atrapar y luego inspeccionar el miembro code para determinar el siguiente paso.
No, desafortunadamente no existe una herramienta de ese tipo disponible para PHP.
Este error puede tener varias razones:
Exactamente como ejecuta objetos locales. Tan solo debe pasar la IP de la máquina remota como segundo parámetro al constructor COM.
Asegúrese de que ha definido com.allow_dcom=TRUE
en su php.ini.
Edite su archivo php.ini y defina com.allow_dcom=TRUE
.
Esto no tiene nada que ver con PHP. Los objetos ActiveX son cargados en el lado del cliente si son solicitados por el documento HTML. No hay relación con el script PHP y por lo tanto no hay una interacción directa posible con el lado del servidor.
Esto es posible con la ayuda de monikers. Si desea obtener múltiples referencias a la misma instancia de word, puede crear esa instancia como se muestra:
<?php
$word = new COM("C:\docs\word.doc");
?>
Esto creará una nueva instancia si no hay una instancia en ejecución disponible, o devolverá un gestor a la instancia en ejecución, si existe.
Puede definir el receptor de un evento y asociarlo usando com_event_sink(). Es posible usar com_print_typeinfo() para que PHP genere un esqueleto para la clase receptora del evento.
La respuesta es tan simple como poco satisfactoria. No estamos seguros pero parece que no es posible hacer nada. Si alguien tiene información específica al respecto, por favor » infórmenos :)
COM+ extiende COM mediante un marco para administrar componentes a través de MTS y MSMQ pero no hay nada especial que PHP deba soportar para usar tales componentes.
PHP por sí mismo no maneja transacciones aun. Por lo tanto si un error ocurre no se inicia un proceso rollback. Si usa componentes que soporten transacciones tendrá que implementar la gestión de transacciones usted mismo.