(PHP 7 >= 7.4.0, PHP 8)
Les objets de cette classe sont créés par les méthodes de fabrique FFI::cdef(), FFI::load() ou FFI::scope(). 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 FFI::new() et FFI::type().
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 FFI_SCOPE
spéciales (par exemple #define FFI_SCOPE "foo"
; la portée par défaut est "C") et ensuite chargés par FFI::load() 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 FFI::scope(). Reportez-vous à l'exemple complet PHP/FFI/preloading pour plus de détails.
Il est possible de précharger plus d'un fichier d'en-tête C dans la même portée.