1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 00:12:06 +01:00
Files
archived-doc-es/reference/com/com.xml
Pedro Antonio Gil Rodríguez 50b5891b2b Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337150 c90b9560-bf6c-de11-be94-00142212c4b1
2015-07-13 10:28:00 +00:00

352 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cae2755cf91198161bfa164bab267d8f447176a6 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: yago -->
<!-- splitted from ./en/functions/com.xml, last change in rev 1.12 -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.com" xmlns="http://docbook.org/ns/docbook">
<titleabbrev>COM</titleabbrev>
<title>La clase COM</title>
<partintro>
<section xml:id="class.com.class">
<title>Descripción</title>
<simpara>
La clase COM permite crear una instancia de un objeto COM compatible con OLE y
llamar sus métodos y aceder sus propiedades.
</simpara>
<simpara>
<literal>$obj = new COM("Application.ID")</literal>
</simpara>
</section>
<section xml:id="com.com">
<title>Métodos</title>
<methodsynopsis>
<methodname>COM::__construct</methodname>
<methodparam><type>string</type><parameter>module_name</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>server_name</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>codepage</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>typelib</parameter></methodparam>
</methodsynopsis>
<para>
Constructor de la clase COM. Los parámetros tienen los siguientes significados:
<variablelist>
<varlistentry>
<term>module_name</term>
<listitem>
<simpara>
Puede ser un ProgID, Class ID o Moniker que tenga el nombre del componente a cargar.
</simpara>
<simpara>
Un ProgID tipicamente es el nombre de la aplicación o DLL seguido por un punto,
seguido del nombre del objeto, ej.: <literal>Word.Application</literal>.
</simpara>
<simpara>
Un Class ID es el UUID que identifica unívocamente una clase dada.
</simpara>
<simpara>
Un Moniker es una forma especial de denominación, similar en concepto a un esquema URL,
que identifica un recurso y especifica como debería ser cargado. Como ejemplo, se
puede cargar Word y obtener un objeto representando un documento de word especificando
el camino completo al documento de word como el nombre del módulo, o puede usar
<literal>LDAP:</literal> como un moniker para usar la interfaz ADSI a LDAP.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>server_name</term>
<listitem>
<simpara>
El nombre de un servidor DCOM en donde el componente debería ser cargado y
ejecutado. Si es &null; el objeto es ejecutado usando el predeterminado para
la aplicación. Lo predeterminado típicamente es ejecutarlo sobre la máquina
local, aunque el administrador puede configurar la aplicación para
ejecutarlo en una máquina diferente.
</simpara>
<simpara>
Si se especifica un valor distinto de &null; para el servidor, PHP se reusará a cargar
el objeto a no ser que la opción de configuración <xref linkend="ini.com.allow-dcom"/>
sea &true;.
</simpara>
<para>
Si <parameter>server_name</parameter> es un array, este debería contener
los siguientes elementos (distinguiendo mayúsculas de minúsculas!). Note que
son todos opcionales (aunque se necesita especificar Username y Password juntos);
si se omite el elemento Server, será usado el servidor predeterminado (como se
menciona más arriba), y la creación de la instancia del objeto no será
afectada por la directiva <xref linkend="ini.com.allow-dcom"/>.
<table>
<title>Nombre de servidor DCOM</title>
<tgroup cols="3">
<thead>
<row>
<entry><parameter>server_name</parameter> clave</entry>
<entry>Tipo</entry>
<entry>Descripción</entry>
</row>
</thead>
<tbody>
<row>
<entry>Server</entry>
<entry>string</entry>
<entry>Nombre del servidor.</entry>
</row>
<row>
<entry>Username</entry>
<entry>string</entry>
<entry>El nombre de usuario para conectarse.</entry>
</row>
<row>
<entry>Password</entry>
<entry>string</entry>
<entry>La clave para <parameter>Username</parameter>.</entry>
</row>
<row>
<entry>Flags</entry>
<entry>integer</entry>
<entry>Una o más de las siguientes constantes, unidas por un OR lógico:
<constant>CLSCTX_INPROC_SERVER</constant>,
<constant>CLSCTX_INPROC_HANDLER</constant>,
<constant>CLSCTX_LOCAL_SERVER</constant>,
<constant>CLSCTX_REMOTE_SERVER</constant>,
<constant>CLSCTX_SERVER</constant> y
<constant>CLSCTX_ALL</constant>. El valor predeterminado si no se especifica aquí es
<constant>CLSCTX_SERVER</constant> si tambien se omitió <parameter>Server</parameter>, o
<constant>CLSCTX_REMOTE_SERVER</constant> si se especificó un servidor.
Se debe consultar la documentación de Microsoft para CoCreateInstance para
más información sobre el significado de estas constantes; típicamente nunca suelen usarse.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>codepage</term>
<listitem>
<simpara>
Especifica la página de código que es usada para convertir las cadenas a
cadenas unicode y viceversa.
La conversión es aplicada cuando una cadena PHP es pasada como parámetro o
devuelta desde un método de este objeto COM. La página de código es pegajosa
en PHP 5, lo que significa que se propaga a objetos y variantes devueltos
por el objeto.
</simpara>
<simpara>
Los posibles valores son
<constant>CP_ACP</constant> (Usando la página de código ANSI predeterminada - si este parámetro
se omite es lo predeterminado),
<constant>CP_MACCP</constant>,
<constant>CP_OEMCP</constant>, <constant>CP_SYMBOL</constant>,
<constant>CP_THREAD_ACP</constant> (usando la página de código/localización establecida para
el hilo de ejecución actual), <constant>CP_UTF7</constant>
y <constant>CP_UTF8</constant>. Tambien puede usar el número de una página de código;
consulte la documentación de Microsoft para más detalles sobre los códigos de páginas
y sus valores numéricos.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="class.com.overloadedmethods">
<title>Métodos sobrecargados</title>
<para>
El objeto devuelto es un objeto sobrecargado, lo que significa que PHP
no ve ningún método fijo como lo hace con las clases regulares; en
su lugar, cualquier acceso de propiedad o método son pasados a través de COM.
</para>
<para>
Comenzando con PHP 5, PHP automáticamente detectará métodos que acepten
parámetros por referencia, y automáticamente convertirá las variables regulares
de PHP a una forma que pueden ser pasadas por referencia. Esto significa que
puede llamar los métodos muy naturalmente; no hay necesidad de ningún esfuerzo
extra en su código.
</para>
<para>
En PHP 4, para pasar parámetros por referencia necesita crear una instancia de
la clase <xref linkend="class.variant"/> para envolver los parámetros byref.
</para>
</section>
<section xml:id="class.com.falsemethods">
<title>Pseudo Métodos</title>
<para>
En versiones de PHP anteriores a 5, un número no muy agradables de trucos
significaba que los siguientes nombres de métodos no sean pasados a través de COM
y fueran directamente controlados por PHP. PHP 5 elimina todo esto; lea los
detalles a continuación para determinar como corregir su código. Estos
nombres de métodos mágicos son insensible a las mayusculas.
</para>
<methodsynopsis xml:id="com.addref">
<type>void</type><methodname>COM::AddRef</methodname>
<void/>
</methodsynopsis>
<simpara>
Agrega artificialmente una referencia de contador al objeto COM.
</simpara>
<warning>
<simpara>
No debería tener necesidad de usar este método. Existe como un complemento lógico
al método Release() a continuación.
</simpara>
</warning>
<methodsynopsis xml:id="com.release">
<type>void</type><methodname>COM::Release</methodname>
<void/>
</methodsynopsis>
<simpara>
Remueve artificialmente una referencia de contador al objeto COM.
</simpara>
<warning>
<simpara>
No debería tener necesidad de usar este método. Su existencia en PHP es un error
diseñado para evitar un error que mantiene objetos COM ejecutandose por más
tiempo que el debido.
</simpara>
</warning>
</section>
<section xml:id="class.com.iteratormethods">
<title>Pseudo Métodos para iterar</title>
<para>
Estos pseudo métodos solo estan disponibles si <function>com_isenum</function>
devuelve &true;, en cuyo caso, esconden cualquier método con los mismos nombres
que podrían ser proporcionados por el objeto COM. Estos métodos han sido eliminados
en PHP 5, y debería usar <xref linkend="com.examples.foreach"/> en su lugar.
</para>
<methodsynopsis xml:id="com.all">
<type>variant</type><methodname>COM::All</methodname>
<void/>
</methodsynopsis>
<simpara>
Devuelve un variant que representa un SafeArray con 10 elementos; cada
elementos será un variant vacío o null. Esta función
Returns a variant representing a SafeArray that has 10 elements;
each element will be an empty/null variant. This function was supposed to
return an array containing all the elements from the iterator, but was
never completed. Do not use.
</simpara>
<methodsynopsis xml:id="com.next">
<type>variant</type><methodname>COM::Next</methodname>
<void/>
</methodsynopsis>
<simpara>
Devuelve un variant representando el siguiente elemento disponible en el
iterador, o &false; cuando no hay más elementos.
</simpara>
<methodsynopsis xml:id="com.prev">
<type>variant</type><methodname>COM::Prev</methodname>
<void/>
</methodsynopsis>
<simpara>Devuelve un variant representando el elemento anterior disponible
en el iterador, o &false; cuando no hay más elementos.
</simpara>
<methodsynopsis xml:id="com.reset">
<type>void</type><methodname>COM::Reset</methodname>
<void/>
</methodsynopsis>
<simpara>
Retrocede el iterador hasta el principio.
</simpara>
</section>
<section xml:id="class.com.examples">
<title>Ejemplos COM</title>
<para>
<example xml:id="example.com1">
<title>Ejemplo COM (1)</title>
<programlisting role="php">
<![CDATA[
<?php
// Iniciando word
$word = new COM("word.application") or die("No se puede crear la instancia de Word");
echo "Word cargado, versión {$word->Version}\n";
//traerlo al frente
$word->Visible = 1;
//abrir un documento vacío
$word->Documents->Add();
//hacer algunas cosas raras
$word->Selection->TypeText("Esto es una prueba...");
$word->Documents[1]->SaveAs("Prueba inutil.doc");
//cerrando word
$word->Quit();
//liberando el objeto
$word = null;
?>
]]>
</programlisting>
</example>
</para>
<para>
<example xml:id="example.com2">
<title>Ejemplo COM (2)</title>
<programlisting role="php">
<![CDATA[
<?php
$conn = new COM("ADODB.Connection") or die("No se puede iniciar ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");
$rs = $conn->Execute("SELECT * FROM sometable"); // Registros
$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++; // incrementa rowcount
$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
]]>
</programlisting>
</example>
</para>
</section>
</partintro>
</phpdoc:classref>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->