ffi / ide-helper-generator
FFI API generator for PHP
0.1.12
2024-05-06 20:43 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-libxml: *
- ext-mbstring: *
- nikic/php-parser: ^4.16|^5.0
- symfony/process: ^5.4|^6.0|^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.22
- php-parallel-lint/php-console-highlighter: ^1.0
- phpunit/phpunit: ^10.3
- symfony/var-dumper: ^5.4|^6.0
- vimeo/psalm: ^5.14
README
Requirements
Installation
Library is available as Сomposer repository and can be installed using the following command in the root of your project as a dev-dependency.
$ composer require ffi/ide-helper-generator --dev
Usage
Generate Metadata
Before generating the helper, the headers must be parsed to build the metadata
data. To do this, castxml will be used, which in turn uses the original
compiler (like clang) to build the AST.
use FFI\Generator\Printer\PhpStormMetadataPrinter; use FFI\Generator\CodeGenerator; echo new CodeGenerator() ->parse(__DIR__ . '/example-header.h') ->generate(new PhpStormMetadataPrinter()) ->save(__DIR__ . '/resources/.phpstorm.meta.php');
Analyze Metadata
After the metadata is generated, it should be parsed and an abstract syntax tree built in memory.
use FFI\Generator\CodeGenerator; $result = new CodeGenerator() ->parse(__DIR__ . '/example-header.h'); foreach ($result->nodes as $namespace) { var_dump($namespace); }