Download the PHP package trismegiste/mondrian without Composer
On this page you can find all versions of the php package trismegiste/mondrian. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download trismegiste/mondrian
More information about trismegiste/mondrian
Files in trismegiste/mondrian
Package mondrian
Short Description Mondrian is a set of static analysis and refactoring tools for more abstraction
License CC-BY-SA-3.0
Informations about the package mondrian
Mondrian
Ok guyz, you have a master degree in Graph Theory, you follow Law of Demeter and you live on S.O.L.I.D principles ?
Let's have some Fun ! (^ω^)
What
It is a set of CLI tools to help you to analyse and refactor highly coupled classes. As you know Law of Demeter and S.O.L.I.D guidances, you need your classes loosely coupled. And for this, there is one only rule : ABSTRACTION
This app provides some helpers to add abstraction into concrete classes with minimum pain.
Getting started
Download the PHAR : mondrian.phar
Try to run a simple command with a few files (or a small part of a project)
This command produces a DOT file for GraphViz. Other formats are available :
- html : interactive graph with the d3.js awesome library
- svg : open standard for vector graphics (requires GraphViz)
- json : format for d3.js for example
Example with html format
Note: The generated html file does not require any dependencies nor a connection.
Ecosystem
Running unit tests with PHPUnit
Building the documentation with phpDocumentor
Building mondrian.phar from the sources with box2
Examples
Default digraph on trismegiste/dokudoki
Which components are bottleneck ?
Reduced graph to LSP violations on trismegiste/prolog
How
Read the concept here
Read the online documentation here
And the API here (not up to date)
Extensible
You can easily add plugins to this tool to make your own algorithm, coloring scheme or new generator. I try to make the API mostly decoupled, re-usable and with great SRP and OCP concerns. Look into the "About" plugin to understand a basic stub of plugin.
Third party
Packages used in this project :
- nikic/php-parser for parsing PHP
- symfony/console for creating CLI app with swag
- alom/graphviz for rendering DOT files
- symfony/finder for searching files through filesystem
- symfony/config for managing yaml configuration without headache
- D3.js for graph rendering in html
- Phar builded with Box
Special thanks
- William Gibson
- JS Bach
- Dream Theater
All versions of mondrian with dependencies
nikic/php-parser Version 1.0.0beta2
symfony/console Version 2.3.*
alom/graphviz Version 0.9.*
symfony/finder Version 2.3.*
symfony/yaml Version 2.3.*
symfony/config Version 2.3.*