ffi/var-dumper

支持 FFI 的 symfony/var-dumper casters 列表

1.0.2 2024-08-14 21:01 UTC

This package is auto-updated.

Last update: 2024-09-14 21:15:48 UTC


README

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

此库允许您使用函数 dd()dump() 来转储 FFI 类型。

需求

  • PHP >= 8.1

安装

该库作为 composer 仓库提供,您可以在项目的根目录中使用以下命令进行安装。

$ composer require ffi/var-dumper

用法

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

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

不安全访问

某些值可能包含在读取时会导致访问错误的数据。例如,指向“空”的指针。

此类数据被标记为“不安全”,并且只显示第一个元素。如果您想完全显示值,应使用环境变量 VAR_DUMPER_FFI_UNSAFE=1

// 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"