COM 및 .Net(Windows) com 클래스

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


소개

com 클래스를 사용하면 OLE 호환 COM 개체를 인스턴스화하고 해당 메서드를 호출하고 해당 속성에 액세스할 수 있습니다.


클래스 개요

                  
class com extends variant {

  /* Methods */
  public __construct(
      string $module_name,
      array|string|null $server_name = null,
      int $codepage = CP_ACP,
      string $typelib = ""
  )
}
                  
                

오버로드된 메서드

반환된 객체는 오버로드된 객체입니다. 즉, PHP는 일반 클래스에서와 같이 고정된 메서드를 볼 수 없습니다. 대신 모든 속성 또는 메서드 액세스가 COM으로 전달됩니다.

PHP는 참조로 매개변수를 허용하는 메서드를 자동으로 감지하고 일반 PHP 변수를 참조로 전달할 수 있는 형식으로 자동 변환합니다. 이는 메서드를 매우 자연스럽게 호출할 수 있음을 의미합니다. 코드에 추가 노력을 기울일 필요가 없습니다.


com 예제

예제 #1 com 예 (1)

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

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word = null;
?>
                  
                

예제 #2 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++;            // increments rowcount
    $rs->MoveNext();
}

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

$rs = null;
$conn = null;
?>
                  
                

목차