Hej alla.
Jag har till uppgift att kommunicera med en applikation via COM-object. För testnings skull gjorde jag ett litet 'hello world' test som ser ut som följer
<?php
// starting word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
Får då följande fel:
PHP Fatal error: Class 'COM' not found in...
Nu förstår jag med att den inte hittar Word applikationen på en Linux burk men jag borde ju knappast få "Class not found" för det.
Har googlat detta som en tok och det finns vissa indikationer på att COM klassen bara är tillgänglig i Windows distr av PHP. Om så är fallet, är det någon som vet om det går att slå på stödet i form av moduler eller om det finns något tredjeparts lösning på problemet?
emissionMedlem sedan dec. 19996 721 inlägg Nej, det går inte att slå på, och vad skulle det vara bra för? COM är för Windows.
Jo men om jag från min applikation kan använda DCOM för att styra ett program som ligger på en Windows burk någonstans långt-bort-i-stan så vore det väl ändå bra?
Dessutom är det det ända sättet att kommunicera med aktuellt program. Så jag har inte mycket val. På något sätt måste jag tillverka en COM-appl som utför det jag vill göra med programmet.
emissionMedlem sedan dec. 19996 721 inlägg
fredriksk skrev:
Jo men om jag från min applikation kan använda D-COM för att styra ett program som ligger på en Windows burk någonstans långt-bort-i-stan så vore det väl ändå bra?
Jovisst, men stödet för COM och DCOM i andra miljöer än Windows är minimalt.
fredriksk skrev:
Dessutom är det det ända sättet att kommunicera med aktuellt program. Så jag har inte mycket val. På något sätt måste jag tillverka en COM-appl som utför det jag vill göra med programmet.
Du kommer inte att lyckas kommunicera direkt med Word från PHP i Linux (möjligtvis när Mono och PHP jobbar ihop) däremot kan man tänka sig en lösning där du kör PHP på Windows-burken och exekverar denna PHP på beställning från Linux-burken.
Vad är det mer specifikt du vill åstadkomma med PHP och Word?
inget alls med word. Ovanstående är bara ett exempel.
Jag har en webb-applikation som jag skall koppla samman med ett ekonomisystem. Tyvärr har bara ekonomisystemet COM API och det är det enda sättet att koppla sig mot det. Själv är jag inte alls insatt i COM-världen utan har bara pysslat med Web Services.
Webb-applikationen ligger på en Linux server och ekonomisystemet på en Windows 2000 server.
emissionMedlem sedan dec. 19996 721 inlägg Att få PHP att kommunicera via COM med detta system torde vara lönlöst. På något sågot bör du blanda in en Windows-server. Kanske en webservice skriven i PHP eller .NET.
OK. Har kontrollerat detta lite mer och även ekonomisystemet ligger på en linux-server (men skall enligt tillverkaren ha tillgång till COM-API:et trots detta). Jag verkar dock inte kunna skapa COM-kopplingar med PHP vilket gör att jag måste blanda in ytterligare en dator som kör windows + webserver med PHP-stöd bara för att kunna få tillgång till COM?
Så här skulle alltså en lösning kunna se ut:
Server1 (Linux, PHP) applikation som vill hämta info från ekonomisystemet
Server2 (Windows, PHP, COM) Server för att skapa COM-objekt
Server3 (Linux) Ekonomisystemet
server1 skickar data med webservice till Server2 som tar emot data via webservice och skickar data med com till server3 som tar emot detta och behandlar data.
Låter som en skakig lösning... En extra dator med windoze ger ju extra felkällor.