PHPackages                             mamchenkov/cakephp-graphviz-models - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mamchenkov/cakephp-graphviz-models

ActiveCakephp-plugin[Utility &amp; Helpers](/categories/utility)

mamchenkov/cakephp-graphviz-models
==================================

A tool to generate a graph of model relationships

24844PHP

Since Jun 15Pushed 6y ago3 watchersCompare

[ Source](https://github.com/mamchenkov/CakePHP-GraphViz-Models)[ Packagist](https://packagist.org/packages/mamchenkov/cakephp-graphviz-models)[ RSS](/packages/mamchenkov-cakephp-graphviz-models/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependenciesVersions (2)Used By (0)

CakePHP GraphViz Relations
--------------------------

[](#cakephp-graphviz-relations)

This is a CakePHP shell that will find all models in your CakePHP application and plugins, figure out the relationships between them, and will build a nice graph, visualzing those relationships for you.

It supports CakePHP 2.x, and requires PHP 5.3.3 or greater. But there are numerous ways it can fail to work for you. If it does fail, please let me know and I'll try to fix it.

Intallation via Composer

```
require: {
	"mamchenkov/cakephp-graphviz-models": "dev-master"
}

```

Load plugin in `app/Config/bootstrap.php`

```
CakePlugin::load('GraphVizRelations');
```

Requirements
------------

[](#requirements)

Since version 2.1 (Angry Blue Octopus On Steroids), this script relies on phpDocumentor/Graphviz package, rather than directly on the command-line dot tool. But you will need to install the Graphviz command line tool incl. dot.

Usage
-----

[](#usage)

The simplest way to use this shell is just to run it via CakePHP console:

```
$ Console/cake GraphVizRelations.graph

```

This should generate a graph.png image in your current directory. Please have a look.

If you need more control, there are two options that this shell understand from the command line: filename and format. You can use either the filename option like so:

```
$ Console/cake GraphVizRelations.graph /tmp/my_models.png

```

Or you can use both options together like so:

```
$ Console/cake GraphVizRelations.graph /tmp/my_models.svg svg

```

No special magic is done about the filename. What You Give Is What You Get. As for the format, you can use anything that GraphViz supports and understands.

If you are still looking for more control, have a look inside the script. There are plenty of settings, options, parameters, and comments for you to make sense of it all. It might be helpful to get familiar with GraphViz Dot Language, just to feel a tiny bit more confident.

Enjoy!

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/39854?v=4)[Mark Scherer](/maintainers/dereuromark)[@dereuromark](https://github.com/dereuromark)

![](https://www.gravatar.com/avatar/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?d=identicon)[mamchenkov](/maintainers/mamchenkov)

---

Top Contributors

[![mamchenkov](https://avatars.githubusercontent.com/u/437928?v=4)](https://github.com/mamchenkov "mamchenkov (18 commits)")[![kimegede](https://avatars.githubusercontent.com/u/870013?v=4)](https://github.com/kimegede "kimegede (3 commits)")[![dereuromark](https://avatars.githubusercontent.com/u/39854?v=4)](https://github.com/dereuromark "dereuromark (1 commits)")[![josegonzalez](https://avatars.githubusercontent.com/u/65675?v=4)](https://github.com/josegonzalez "josegonzalez (1 commits)")[![rhelms](https://avatars.githubusercontent.com/u/815879?v=4)](https://github.com/rhelms "rhelms (1 commits)")

---

Tags

cakephpdotgraphvizphp

### Embed Badge

![Health badge](/badges/mamchenkov-cakephp-graphviz-models/health.svg)

```
[![Health](https://phpackages.com/badges/mamchenkov-cakephp-graphviz-models/health.svg)](https://phpackages.com/packages/mamchenkov-cakephp-graphviz-models)
```

PHPackages © 2026

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