PHP 8.4.2 Released!

FFI::cdef

(PHP 7 >= 7.4.0, PHP 8)

FFI::cdefCria um novo objeto FFI

Descrição

public static FFI::cdef(string $code = "", ?string $lib = null): FFI

Cria um novo objeto FFI.

Parâmetros

code

Uma string contendo uma sequência de declarações em liguagem C usual (tipos, estruturas, funções, variáveis etc.). Na verdade, esta string pode ser copiada e colada a partir de arquivos de cabeçalho C.

Nota:

As diretivas de pré-processamento C não são suportadas, ou seja, #include, #define e macros CPP não funcionam.

lib

O nome de um arquivo de biblioteca compartilhada, a ser carregado e conectado com as definições.

Nota:

Se lib for omitido ou null, as plaraformas que suportam RTLD_DEFAULT tentarão localizar símbolos declarados em code no escopo global normal. Outros sistemas falharão ao tentar resolver estes símbolos.

Valor Retornado

Retorna o objeto FFI criado.

Registro de Alterações

Versão Descrição
8.3.0 Funções C que retornam void irão retornar um tipo null do PHP ao invés de FFI\CType::TYPE_VOID.
8.0.0 lib agora pode ser nulo.
adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
0
derrekbertrand at gmail dot com
4 years ago
You'll probably want to add a C header file, but as of the current version preprocessor directives do not work... so what do? On systems with GCC run the file through this command:

cpp -P /usr/include/unprocessedheader.h -o myprettyheader.h

Note that because preprocessing is not suppored in FFI, C/C++ macros are not supported either. You'll probably still have to write a small wrapper in C unless your library has an exceedingly simple public API.
To Top