1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/reference/ffi/book.xml
2026-01-18 22:00:53 +00:00

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