mirror of
https://github.com/php/doc-fr.git
synced 2026-03-24 07:02:06 +01:00
73 lines
2.8 KiB
XML
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
|
|
-->
|