1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/reference/ffi/book.xml
2026-01-18 22:00:40 +00:00

73 lines
2.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e14fdcab82e89bfb4ee221b1de9f4764c93abcf5 Maintainer: pierrick 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>Interface de fonction étrangère (Foreign Function Interface)</title>
<titleabbrev>FFI</titleabbrev>
<preface xml:id="intro.ffi">
&reftitle.intro;
<simpara>
Cette extension permet de charger des bibliothèques partagées (<filename>.DLL</filename> ou
<filename>.so</filename>), l'appel à des fonctions C et l'accès à des structures de données C
à partir de PHP, sans avoir à connaître l'API d'extension Zend, et sans avoir à apprendre
un troisième langage "intermédiaire".
L'API publique est implémentée sous la forme d'une classe unique <classname>FFI</classname> avec
plusieurs méthodes statiques (certaines d'entre elles peuvent être appelées dynamiquement), et
des méthodes d'objet surchargées, qui effectuent l'interaction réelle avec les données C.
</simpara>
<caution>
<simpara>
L'extension FFI est dangereuse, car elle permet de s'interfacer avec le système à un niveau très bas.
Elle ne doit être utilisée que par des développeurs ayant une connaissance pratique du langage C
et des API C utilisées. Pour minimiser les risques, l'utilisation de l'API FFI peut être restreinte
avec la directive &php.ini; <link linkend="ini.ffi.enable">ffi.enable</link>.
</simpara>
</caution>
<note>
<simpara>
L'extension FFI ne rend pas obsolète l'API d'extension classique de PHP;
elle est simplement fournie pour l'interfaçage ad-hoc avec des fonctions et des structures de données C.
</simpara>
</note>
<tip>
<simpara>
Actuellement, l'accès aux structures de données FFI est significativement (environ 2 fois) plus lent
que l'accès aux tableaux et objets natifs de PHP. Par conséquent, il n'est pas utile d'utiliser
l'extension FFI pour la vitesse; cependant, il peut être judicieux de l'utiliser pour réduire la
mémoire.
</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
-->