1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/reference/ffi/book.xml
2024-07-10 01:07:13 +03:00

77 lines
3.3 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: 46a9cdd2dbef4ec89bf65fad9930e2feb78bbb98 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<book xml:id="book.ffi" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundled" ?>
<title>Интерфейс внешней функции (Foreign Function Interface)</title>
<titleabbrev>FFI</titleabbrev>
<preface xml:id="intro.ffi">
&reftitle.intro;
<para>
Модуль умеет загружать общие библиотеки (<filename>.DLL</filename>
или <filename>.so</filename>), вызывать C-функции и получать
доступ с структурам языка C из PHP без глубокого изучения
API модулей Zend и стороннего «промежуточного» языка.
Публичный API реализовали как единственный класс <classname>FFI</classname>
с набором статических методов (часть методов
вызывается динамически) и переопределёнными методами
объекта, которые фактически взаимодействуют с данными языка C.
</para>
<caution>
<para>
Модуль FFI довольно опасен, поскольку разрешает
взаимодействовать с системой на низком уровне.
С модулем FFI должны работать только те разработчики,
которые знакомы с языком С и умеют работать с API языка.
Чтобы уменьшить риски, модуль запрещают
директивой <link linkend="ini.ffi.enable">ffi.enable</link>
в файле &php.ini;.
</para>
</caution>
<note>
<para>
Модуль FFI не делает классический API модулей PHP устаревшим;
модуль разработали для взаимодействия с функциями и структурами данных
языка C.
</para>
</note>
<tip>
<para>
Доступ к структурам данных модуля FFI примерно в 2 раза
медленнее, чем доступ к объектам и массивам PHP. Поэтому
нет повода использовать FFI для ускорения;
однако с модулем работают, чтобы сократить потребление памяти.
</para>
</tip>
</preface>
&reference.ffi.setup;
&reference.ffi.examples;
&reference.ffi.ffi;
&reference.ffi.ffi.cdata;
&reference.ffi.ffi.ctype;
&reference.ffi.ffi.exception;
&reference.ffi.ffi.parserexception;
</book>
<!-- 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
-->