1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-23 22:52:18 +01:00
Files
archived-doc-fr/reference/ffi/ffi.xml
2026-02-28 22:54:29 +01:00

102 lines
3.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e14fdcab82e89bfb4ee221b1de9f4764c93abcf5 Maintainer: pierrick Status: ready -->
<!-- Reviewed: no -->
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.ffi" role="class">
<title>Interface principale vers le code C et les données</title>
<titleabbrev>FFI</titleabbrev>
<partintro>
<!-- {{{ FFI intro -->
<section xml:id="ffi.intro">
&reftitle.intro;
<simpara>
Les objets de cette classe sont créés par les méthodes de fabrique <methodname>FFI::cdef</methodname>,
<methodname>FFI::load</methodname> ou <methodname>FFI::scope</methodname>. Les variables C définies
sont disponibles en tant que propriétés de l'instance FFI, et les fonctions C définies sont disponibles
comme méthodes de l'instance FFI. Les types C déclarés peuvent être utilisés pour créer de nouvelles structures de données C
en utilisant <methodname>FFI::new</methodname> et <methodname>FFI::type</methodname>.
</simpara>
<simpara>
L'analyse des définitions FFI et le chargement des bibliothèques partagées peuvent prendre beaucoup de temps. Il n'est pas utile
de le faire à chaque requête HTTP dans un environnement Web. Cependant, il est possible de précharger les définitions FFI
et les bibliothèques au démarrage de PHP, et d'instancier les objets FFI lorsque c'est nécessaire. Les fichiers d'en-tête
peuvent être étendus avec des définitions <literal>FFI_SCOPE</literal> spéciales (par exemple <code>#define FFI_SCOPE "foo"</code>;
la portée par défaut est "C") et ensuite chargés par <methodname>FFI::load</methodname> pendant le préchargement.
Cela conduit à la création d'une liaison persistante, qui sera disponible pour toutes les requêtes suivantes
par l'intermédiaire de <methodname>FFI::scope</methodname>.
Se reporter à l'<link linkend="ffi.examples-complete">exemple complet PHP/FFI/preloading</link>
pour plus de détails.
</simpara>
<simpara>
Il est possible de précharger plus d'un fichier d'en-tête C dans la même portée.
</simpara>
</section>
<!-- }}} -->
<section xml:id="ffi.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis class="class">
<ooclass>
<modifier>final</modifier>
<classname>FFI</classname>
</ooclass>
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>const</modifier>
<type>int</type>
<varname linkend="ffi.constants.biggest-alignment">FFI::__BIGGEST_ALIGNMENT__</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ffi')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='FFI'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<section xml:id="class.ffi.constants">
&reftitle.constants;
<variablelist>
<varlistentry xml:id="ffi.constants.biggest-alignment">
<term><constant>FFI::__BIGGEST_ALIGNMENT__</constant></term>
<listitem>
<simpara/>
</listitem>
</varlistentry>
</variablelist>
</section>
</partintro>
&reference.ffi.entities.ffi;
</reference>
<!-- 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
-->