mochaka / serialization-parser
This is my package serialization-parser
Requires
- php: ^8.0
- illuminate/contracts: ^10.0||^11.0||^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- buckhamduffy/coding-standards: ^7
- captainhook/hook-installer: ^1.0
- larastan/larastan: ^2.9||^3.0
- laravel/framework: ^12
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.0.0||^9.0.0||^8.22.0
- phpstan/extension-installer: ^1.3||^2.0
- phpstan/phpstan: ^2.1
- phpstan/phpstan-deprecation-rules: ^1.1||^2.0
- phpunit/phpunit: ^11
README
Parse PHP serialized strings into rich, structured objects — fast, simple, and flexible.
serialization-parser is a PHP package that parses serialized data into a structured, lightweight AST (Abstract Syntax Tree) format.
Each value is converted into a specific typed object (ArrayType
, StringType
, IntegerType
, etc.), with an option to easily export the structure as a plain array.
Installation
You can install the package via composer:
composer require mochaka/serialization-parser
Usage
use Mochaka\SerializationParser\SerializationParser; $data = serialize(['foo' => 'bar', 'baz' => 1]); $result = SerializationParser::parse($data);
The above result will be an instance of Mochaka\SerializationParser\Data\ArrayType
:
var_dump($result); Mochaka\SerializationParser\Data\ArrayType {#4172 +name: null, +visibility: null, +properties: [ Mochaka\SerializationParser\Data\StringType {#4170 +name: "foo", +visibility: null, +value: "bar", }, Mochaka\SerializationParser\Data\IntegerType {#4171 +name: "baz", +visibility: null, +value: 1, }, ], }
All types also have a ->toArray()
method to dump the schema as an array.
var_dump($result->toArray()); [ "name" => null, "properties" => [ [ "name" => "foo", "type" => "String", "value" => "bar", "visibility" => null, ], [ "name" => "baz", "type" => "Integer", "value" => 1, "visibility" => null, ], ], "type" => "Array", "visibility" => null, ]
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.