Model representation

Main feature of Skipper besides schema definitions export is the visualization of the PHP ORM Frameworks Doctrine, Doctrine2, Propel and CakePHP. Skipper uses Extended ER Diagram in the visual model.

Using ERD in Skipper

Visual model is the core of Skipper, it is the main interface where you can edit all the ORM objects and their properties. To make the Visual model easy to understand and readable on the first look, Skipper uses Enhanced Entity Relationship Diagram with Crow foot notation to display the objects and their relations.

Detail of the Extended ER diagram notation in Skipper
Example Skipper EERD notation with inheritace

Chosen notation allows us to display all ORM elements like inheritance in a way that is clear to experienced ORM Framework developers. This notation also helps developers coming from relational database development as it is similar to mainstream tools like MySQL Workbench.

Export of the ER Diagram

Any possible format can be used as output for the export

Skipper visualizes the project structure as Enhanced Entity Relation Diagram, but projects are stored as XML in memory. When exported, this XML is undergoing series of XSL transformations to achieve final definition file.

The used XSLT depend on the respective framework, but the starting point is the XML project file that uses universal structure for Doctrine, Doctrine2, Propel and CakePHP. Export is covered in more detail in its own documentation article.

One of the most important implications is that the export format can be anything, not only the definitions or PDF with the EERD, but also structured documentation, lists of classes, etc. If you are more interested in such customization, please, contact us [email protected] or visit our homepage to see more detailed overview and all possibilities.

Element naming conventions

The main naming convention complies with general ORM terminology as opposed to relational database names. Tables are called entities, columns are called fields and so on.

More specific names are conforming to the Doctrine2 standards. Naming convention and exported file content follow the respective framework standard. When importing existing projects, file names and file structure are copied from the existing project and stored.

Doctrine2 ER diagram generated from schema definitions

Skipper also follows each framework naming conventions for model elements. For example, separated logical element is called bundle in Doctine and Symfony, package in Propel and module in CakePHP.