froog / silvergraph
Generates data model visualisations from SilverSripe DataObjects, displaying database fields, relations and ancestry
Installs: 5 719
Dependents: 0
Suggesters: 0
Security: 0
Stars: 39
Watchers: 3
Forks: 12
Open Issues: 5
Type:silverstripe-vendormodule
Requires
- silverstripe/framework: ~3.0
This package is not auto-updated.
Last update: 2024-08-31 15:55:08 UTC
README
Creates data model visualisations of SilverStripe DataObjects, showing fields, relations and ancestry. Can output images in .png, .svg and raw GraphViz "dot" format. Flexible configuration options and can be called from command line and URL.
Example call: http://example.com/Silvergraph/png?location=cms,framework,mysite
Installation
- Composer/Packagist: Install composer, run
composer require froog/silvergraph
(* for version) and visit?flush=1
to update the routing table. - Manual: Download and extract silvergraph as
SilverGraph
folder in the top level of your site and visit?flush=1
to update the routing table.
Installation on OSX
- Install Graphviz via Homebrew:
brew install graphviz
and note down the location - Add the location to your
_ss_environment.php
file, postpending 'dot' to the end of the path, e.g.:define('SILVERGRAPH_GRAPHVIZ_PATH', '/usr/local/Cellar/graphviz/2.38.0/bin/dot');
- Visit
?flush=1
to update the routing table.
Requirements
- SilverStripe 3.0.0+
- To create images: GraphViz (latest version) http://www.graphviz.org/
- To install (Debian/Ubuntu):
apt-get install graphviz
Usage
Command line: (in site root)
- Default png image:
sake Silvergraph/png > datamodel.png
- Parameters:
sake Silvergraph/png location=mysite,cms inherited=1 exclude=SiteTree > datamodel.png
- Default dot file:
sake Silvergraph/dot > datamodel.dot
Browser: (logged in as admin)
- Default png image: http://example.com/Silvergraph/png
- Parameters: http://example.com/Silvergraph/png?location=mysite,cms&inherited=1&exclude=SiteTree
- Default dot file: http://example.com/Silvergraph/dot
Parameters
Specify the folder to look for classes under
location=mysite
(default) Only graph classes under the /mysite folderlocation=/
Graph ALL classes in every module (warning - may take a long time and could generate a large .png)location=mysite,mymodule
Only graph classes under /mysite and /mymodule folders
Remove specific classes from the graph
exclude=SiteTree
exclude=SiteTree,File
How verbosely to show relations
relations=0
Don't show any relationsrelations=1
(default) Don't show inherited relationsrelations=2
Show inherited relations (verbose)
How verbosely to show fields
fields=0
Don't show any fieldsfields=1
(default) Show only fields defined on selffields=2
Show inherited fields (verbose)
How verbosely to show ancestors
ancestry=0
Don't show any ancestry relationsancestry=1
(default) Show ancestry relations
Include DataObject on the graph
include-root=0
(default) Don't graph DataObjectinclude-root=1
Graph DataObject
Group classes by modules
group=0
(default) Don't group by modulesgroup=1
Group the modules into their own container
Specify direction graph is laid out
rankdir=x
Where x isTB
(default) ,LR
,RL
, orBT
(top-bottom, left-right, right-left, bottom-top)