innmind / object-graph
Extract object graph out of a root object
Requires
- php: ~8.1
- innmind/foundation: ~1.3
- innmind/graphviz: ~4.0
Requires (Dev)
- innmind/black-box: ^6.4.1
- innmind/coding-standard: ~2.0
- innmind/static-analysis: ^1.2.1
This package is auto-updated.
Last update: 2025-07-30 14:56:56 UTC
README
Small library to generate an abstract graph out of an object and its dependencies.
You can then visualize this graph by rendering it with graphviz.
Installation
composer require innmind/object-graph
Usage
use Innmind\ObjectGraph\{ Lookup, Render, RewriteLocation\SublimeHandler, }; use Innmind\OperatingSystem\Factory; use Innmind\Server\Control\Server\Command; $lookup = Lookup::of(); $render = Render::of( new SublimeHandler, // optional, useful to open the file in Sublime Text instead of the browser ); $objectGraph = $lookup($theRootObjectOfYourApp); // the object could be the framework instance for example Factory::build() ->control() ->processes() ->execute( Command::foreground('dot') ->withShortOption('Tsvg') ->withShortOption('o', 'graph.svg') ->withInput($render($objectGraph)), ) ->unwrap() ->wait();
This will generate a graph.svg
file representing the object graph of your application.
Note
This example uses innmind/operating-system
to generate the svg file but the package is not a direct dependency, you can use the content returned by $render()
however you wish.
Note
You can pass an implementation of RewriteLocation
as the first argument of Render
so you can rewrite the url to the class file that will be used in the generated graph (useful if you want to generate urls to open the files directly in your IDE).