Files
php-doc-ru/reference/com/dotnet.xml
2023-08-31 22:42:11 +03:00

124 lines
5.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 14767af0f05dffa6fdb9b49e1a1f4e9ca7022a60 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="class.dotnet">
<titleabbrev>dotnet</titleabbrev>
<title>Класс dotnet</title>
<partintro>
<!-- {{{ dotnet intro -->
<section xml:id="dotnet.intro">
&reftitle.intro;
<para>
Класс dotnet позволяет создавать объекты из сборок .Net, вызывать их
методы и использовать их свойства, если класс, методы и свойства <link xlink:href="&url.com.visible;">видимы для COM</link>.
</para>
<para>
Ни создание экземпляров статических классов, ни вызов статических методов не поддерживаются.
Создание экземпляров универсальных классов, таких как <literal>System.Collections.Generic.List</literal>, также не поддерживается.
</para>
<para>
Некоторые классы в .Net не реализуют IDispatch, поэтому, хотя их объекты можно создавать, вызов методов или доступ к свойствам этих классов не поддерживается.
</para>
<note>
<para>
Вам нужно установить библиотеки времени исполнения .Net на ваш веб-сервер, чтобы воспользоваться
этой функцией.
</para>
</note>
<note>
<para>
До PHP 8.0.0 .Net framework 4.0 и более поздние версии не поддерживаются классом <classname>dotnet</classname>.
Однако если сборки были зарегистрированы с помощью <command>regasm.exe</command>,
классы могут быть созданы как объекты <classname>com</classname>.
Начиная с PHP 8.0.0, .Net framework 4.0 и более поздние версии поддерживаются с помощью директивы &php.ini;
<link linkend="ini.com.dotnet-version">com.dotnet_version</link>.
</para>
</note>
</section>
<!-- }}} -->
<section xml:id="dotnet.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis class="class">
<ooclass>
<classname>dotnet</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>variant</classname>
</ooclass>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.dotnet')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='dotnet'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<section xml:id="class.dotnet.overloadedmethods">
<title>Перегруженные методы</title>
<para>
Возвращаемый объект является перегруженным, то есть PHP
не видит каких-либо фиксированных методов, как это происходит
с обычными классами; вместо этого свойства и доступ к методам
передаётся через COM, а оттуда в
DOTNET. Другими словами, объект .Net отображается через уровень взаимодействия COM,
предоставляемый библиотекой времени исполнения .Net.
</para>
<para>
Как только вы создали объект dotnet, PHP обрабатывает его идентично любому
другому объекту COM; применяются все те же правила.
</para>
</section>
<section xml:id="class.dotnet.examples">
<title>Примеры dotnet</title>
<para>
<example xml:id="example.dotnet">
<title>Пример использования dotnet</title>
<programlisting role="php">
<![CDATA[
<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Привет ");
echo $stack->Pop() . $stack->Pop();
?>
]]>
</programlisting>
</example>
</para>
</section>
</partintro>
&reference.com.entities.dotnet;
</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
-->