PHP code example of hershel-theodore-layton / expr-dump
1. Go to this page and download the library: Download hershel-theodore-layton/expr-dump library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
hershel-theodore-layton / expr-dump example snippets
HACK
// Like var_dump(), with Hack syntax, all type information is lost.
// - shapes become dicts
// - tuples become vecs
// - enums become ints / strings
ExprDump\dump<mixed>($x);
// There are multiple options that can be combined in any way.
// Encode Hack types and aliasses how you please.
// \App\user_id_from_int(4) types the value as an App\UserId.
ExprDump\dump<vec<shape('name' => string, 'friends' => vec<App\UserId>)>>(
$users,
shape(
'custom_dumpers' => dict[
App\UserId::class => (mixed $id)[] ==>
'\App\user_id_from_int('.($id as int).')',
],
),
);
// Serialize enums as enumeration expression, such as Roles::ADMIN.
ExprDump\dump<vec<Roles>>(
$roles,
shape(
'enum_definitions' => ExprDump\EnumDefinition::create(Roles::class),
),
);
// Keep class constant names in the dumped output.
// shape(\SomeClass::CONSTANT => 1) instead of shape('val' => 1)
ExprDump\dump<shape(SomeClass::CONSTANT => int)>(
$shape,
shape(
'shape_key_namer' => (
?string $_parent_shape_name,
arraykey $key,
)[] ==> {
$prefix = '\\'.SomeClass::class.'::';
return dict<arraykey, string>[
SomeClass::CONSTANT => $prefix.'CONSTANT',
][$key] ?? null;
},
),
);
// Create a reusable dumper, call `->dump()`
$dumper = ExprDump\create_dumper<SomeType>(shape(
// The options go here
));
$dumper->dump($value_of_that_given_type);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.