Skip to content

Latest commit

 

History

History
70 lines (53 loc) · 2.13 KB

README.md

File metadata and controls

70 lines (53 loc) · 2.13 KB

VarDumper Extension For FFI Types

PHP 8.1+ Latest Stable Version Latest Unstable Version Total Downloads License MIT

This library allows you to dump FFI types using the functions dd() and dump().

Requirements

  • PHP >= 8.1

Installation

Library is available as composer repository and can be installed using the following command in a root of your project.

$ composer require ffi/var-dumper

Usage

dump(\FFI::new('struct { float x }'));

//
// Expected Output:
//
// struct <anonymous> {
//   x<float>: 0.0
// }
//

Unsafe Access

Some values may contain data that will cause access errors when read. For example, pointers leading to "emptiness".

Such data is marked as "unsafe" and only the first element is displayed. If you want to display the values in full, you should use the VAR_DUMPER_FFI_UNSAFE=1 environment variable.

// Create char* with "Hello World!\0" string.
$string = \FFI::new('char[13]');
\FFI::memcpy($string, 'Hello World!', 12);
$pointer = \FFI::cast('char*', $string);

// Dump
dump($pointer);

// VAR_DUMPER_FFI_UNSAFE=0
//
// > char* (unsafe access) {
// >  +0: "H"
// > }

// VAR_DUMPER_FFI_UNSAFE=1
//
// > b"Hello World!\x00"