# La classe com

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

## Introduction

La classe com 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

class com extends variant {
/* Méthodes */
public function __construct(
string `$module_name`,
array|string|null `$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 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 qu'il est possible d'appeler les méthodes de façon naturelle ; il n'y a pas d'efforts supplémentaires à fournir dans le 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'amener 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

- com::__construct — Constructeur de la classe com

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open