La classe COM

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Introduction

La classe COM vous permet d'instancier un objet COM compatible OLE et d'appeler ses méthodes et d'accéder à ses propriétés.

Synopsis de la classe

COM extends VARIANT {
/* Méthodes */
__construct ( string $module_name [, mixed $server_name = NULL [, int $codepage = CP_ACP [, string $typelib ]]] )
}

Méthodes surchargées

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM.

PHP will automatically detect methods that accept parameters by reference, and will automatically convert regular PHP variables to a form that can be passed by reference. This means that you can call the method very naturally; you needn't go to any extra effort in your code. PHP détectera automatiquement les méthodes qui acceptent les paramètres par référence, et convertira automatiquement les variables PHP classiques en une forme pouvant être passée par référence. Cela signifie que vous pouvez appeler les méthodes de façon naturelle ; vous n'avez pas d'efforts supplémentaires à faire dans votre code.

Exemples COM

Exemple #1 Exemple COM (1)

<?php
// démarrer Word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo 
"Loaded Word, version {$word->Version}\n";

// l'ammener devant
$word->Visible 1;

// ouvrir un document vide
$word->Documents->Add();

// faire des choses
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

// fermer Word
$word->Quit();

// libérer l'objet
$word null;
?>

Exemple #2 Exemple COM (2)

<?php

$conn 
= new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password"
);

$rs $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns $rs->Fields->Count();
echo 
$num_columns "\n";

for (
$i=0$i $num_columns$i++) {
    
$fld[$i] = $rs->Fields($i);
}

$rowcount 0;
while (!
$rs->EOF) {
    for (
$i=0$i $num_columns$i++) {
        echo 
$fld[$i]->value "\t";
    }
    echo 
"\n";
    
$rowcount++;            // incrémente rowcount
    
$rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs null;
$conn null;

?>

Sommaire