PHPackages                             froog/silvergraph - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. froog/silvergraph

ActiveSilverstripe-vendormodule[Authentication &amp; Authorization](/categories/authentication)

froog/silvergraph
=================

Generates data model visualisations from SilverSripe DataObjects, displaying database fields, relations and ancestry

0.0.4(9y ago)425.7k11[5 issues](https://github.com/froog/SilverGraph/issues)[1 PRs](https://github.com/froog/SilverGraph/pulls)BSD-3-ClausePHPCI failing

Since Dec 9Pushed 4y ago3 watchersCompare

[ Source](https://github.com/froog/SilverGraph)[ Packagist](https://packagist.org/packages/froog/silvergraph)[ RSS](/packages/froog-silvergraph/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (1)Versions (7)Used By (0)

SilverGraph
===========

[](#silvergraph)

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.

[![SilverGraph example](https://camo.githubusercontent.com/2491048555a7f4cd3a89716bfbad84f5393f522a1823826d959e811fbef350e9/68747470733a2f2f7261772e6769746875622e636f6d2f66726f6f672f53696c76657247726170682f6d61737465722f646f632f53696c76657247726170685f6578616d706c655f5f6c6f636174696f6e3d636d732c6672616d65776f726b2c6d79736974652e706e67)](https://camo.githubusercontent.com/2491048555a7f4cd3a89716bfbad84f5393f522a1823826d959e811fbef350e9/68747470733a2f2f7261772e6769746875622e636f6d2f66726f6f672f53696c76657247726170682f6d61737465722f646f632f53696c76657247726170685f6578616d706c655f5f6c6f636174696f6e3d636d732c6672616d65776f726b2c6d79736974652e706e67)

*Example call: *

Installation
------------

[](#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

[](#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
------------

[](#requirements)

- SilverStripe 3.0.0+
- To create images: GraphViz (latest version)
- To install (Debian/Ubuntu): `apt-get install graphviz`

Usage
-----

[](#usage)

### Command line: (in site root)

[](#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)

[](#browser-logged-in-as-admin)

- Default png image:
- Parameters: [http://example.com/Silvergraph/png?location=mysite,cms&amp;inherited=1&amp;exclude=SiteTree](http://example.com/Silvergraph/png?location=mysite,cms&inherited=1&exclude=SiteTree)
- Default dot file:

### Parameters

[](#parameters)

#### Specify the folder to look for classes under

[](#specify-the-folder-to-look-for-classes-under)

- `location=mysite` *(default)* Only graph classes under the /mysite folder
- `location=/` 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

[](#remove-specific-classes-from-the-graph)

- `exclude=SiteTree`
- `exclude=SiteTree,File`

#### How verbosely to show relations

[](#how-verbosely-to-show-relations)

- `relations=0` Don't show any relations
- `relations=1` *(default)* Don't show inherited relations
- `relations=2` Show inherited relations (verbose)

#### How verbosely to show fields

[](#how-verbosely-to-show-fields)

- `fields=0` Don't show any fields
- `fields=1` *(default)* Show only fields defined on self
- `fields=2` Show inherited fields (verbose)

#### How verbosely to show ancestors

[](#how-verbosely-to-show-ancestors)

- `ancestry=0` Don't show any ancestry relations
- `ancestry=1` *(default)* Show ancestry relations

#### Include DataObject on the graph

[](#include-dataobject-on-the-graph)

- `include-root=0` *(default)* Don't graph DataObject
- `include-root=1` Graph DataObject

#### Group classes by modules

[](#group-classes-by-modules)

- `group=0` *(default)* Don't group by modules
- `group=1` Group the modules into their own container

#### Specify direction graph is laid out

[](#specify-direction-graph-is-laid-out)

- `rankdir=x` Where x is `TB` *(default)* ,`LR`,`RL`, or `BT` (top-bottom, left-right, right-left, bottom-top)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~384 days

Total

4

Last Release

3386d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/061ce8aea86740c3f34784756c9dda7e09a50ee84cd35719d7f68458f9fe946d?d=identicon)[froog](/maintainers/froog)

---

Top Contributors

[![danieldia](https://avatars.githubusercontent.com/u/5490151?v=4)](https://github.com/danieldia "danieldia (24 commits)")[![froog](https://avatars.githubusercontent.com/u/559102?v=4)](https://github.com/froog "froog (19 commits)")[![ntd](https://avatars.githubusercontent.com/u/160618?v=4)](https://github.com/ntd "ntd (15 commits)")[![anselmdk](https://avatars.githubusercontent.com/u/1316533?v=4)](https://github.com/anselmdk "anselmdk (2 commits)")[![edwilde](https://avatars.githubusercontent.com/u/415374?v=4)](https://github.com/edwilde "edwilde (2 commits)")[![joshkosmala](https://avatars.githubusercontent.com/u/1444716?v=4)](https://github.com/joshkosmala "joshkosmala (1 commits)")

---

Tags

silverstripecmspermissionsmember

### Embed Badge

![Health badge](/badges/froog-silvergraph/health.svg)

```
[![Health](https://phpackages.com/badges/froog-silvergraph/health.svg)](https://phpackages.com/packages/froog-silvergraph)
```

###  Alternatives

[silverstripe/contentreview

Flags pages for periodical author review (incl. reporting)

22264.3k4](/packages/silverstripe-contentreview)[symbiote/silverstripe-memberprofiles

Member registration and profile management

10152.3k3](/packages/symbiote-silverstripe-memberprofiles)[axyr/silverstripe-adminlogin

Use a custom login screen to log in to the admin section

165.8k](/packages/axyr-silverstripe-adminlogin)[trendyminds/isolate

Restrict your Craft CMS users on a per-entry basis

1626.5k](/packages/trendyminds-isolate)[symbiote/silverstripe-restrictedobjects

Provides more advanced permission management for data objects in SilverStripe.

181.2k2](/packages/symbiote-silverstripe-restrictedobjects)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
