Files
doc-fr/reference/ffi/book.xml

75 lines
2.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 46a9cdd2dbef4ec89bf65fad9930e2feb78bbb98 Maintainer: pierrick 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>Interface de fonction étrangère (Foreign Function Interface)</title>
<titleabbrev>FFI</titleabbrev>
<preface xml:id="intro.ffi">
&reftitle.intro;
<para>
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.
</para>
<caution>
<para>
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>.
</para>
</caution>
<note>
<para>
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.
</para>
</note>
<tip>
<para>
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.
</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
-->