Powerful visual editor with definitions export

Create your application model and export its definition files just in a few clicks.

Output meets all MVC and ORM frameworks standards.

  • Entity
  • Bundle
  • Project
Skipper diagram - entity Skipper diagram - bundle Skipper diagram - project

1.Visually edit your project model.

  • Annotations
  • XML
  • YML
1 <?php
2 use Doctrine\ORM\Mapping AS ORM;
3  
4 /**
5 * @ORM\Entity
6 * @ORM\Table(schema="ecommerce_order", options={"charset":"utf8","collate":"utf8_unicode_ci"})
7 * @ORM\ChangeTrackingPolicy("DEFERRED_IMPLICIT")
8 */
9 class EcommerceOrder
10 {
11 /**
12 * @ORM\Id
13 * @ORM\Column(type="integer", length=4, options={"unsigned":true})
14 * @ORM\GeneratedValue(strategy="SEQUENCE")
15 */
16 private $id;
17  
18 /**
19 * @ORM\Column(type="datetime", nullable=true)
20 */
21 private $ordered_at;
22  
23 /**
24 * @ORM\Column(type="string", nullable=true)
25 */
26 private $customer_note;
27  
28 /**
29 * @ORM\Column(type="string", nullable=true)
30 */
31 private $internal_note;
32  
33 /**
34 * @ORM\OneToOne(targetEntity="Address")
35 * @ORM\JoinColumn(name="billing_address_id", referencedColumnName="id", unique=true)
36 */
37 private $BillingAddress;
38  
39 /**
40 * @ORM\ManyToOne(targetEntity="Address")
41 * @ORM\JoinColumn(name="delivery_address_id", referencedColumnName="id")
42 */
43 private $DeliveryAddress;
44 }
45
1 <?xml version="1.0"?>
2 <doctrine-mapping
3 xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
4 xsi="http://www.w3.org/2001/XMLSchema-instance"
5 schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
6 <entity
7 name="EcommerceOrder"
8 change-tracking-policy="DEFERRED_IMPLICIT"
9 schema="ecommerce_order"
10 repository-class="Doctrine\ORM\EntityRepository">
11 <id name="id" type="integer" length="4">
12 <generator strategy="SEQUENCE"/>
13 <options>
14 <option name="unsigned" value="true"/>
15 </options>
16 </id>
17 <field name="ordered_at" type="datetime" nullable="true"/>
18 <field name="customer_note" type="string" nullable="true" version="true"/>
19 <field name="internal_note" type="string" nullable="true" version="true"/>
20 <many-to-one field="DeliveryAddress" target-entity="Address">
21 <join-columns>
22 <join-column
23 name="delivery_address_id"
24 referenced-column-name="id"
25 on-delete="CASCADE"/>
26 </join-columns>
27 </many-to-one>
28 <one-to-one field="BillingAddress" target-entity="Address">
29 <join-columns>
30 <join-column
31 name="billing_address_id"
32 referenced-column-name="id"
33 unique="true"
34 on-delete="CASCADE"/>
35 </join-columns>
36 </one-to-one>
37 <options>
38 <option name="charset" value="utf8"/>
39 <option name="collate" value="utf8_unicode_ci"/>
40 </options>
41 </entity>
42 </doctrine-mapping>
43
1 EcommerceOrder:
2 type: entity
3 changeTrackingPolicy: DEFERRED_IMPLICIT
4 schema: ecommerce_order
5 repositoryClass: Doctrine\ORM\EntityRepository
6 fields:
7 id:
8 id: true
9 type: integer
10 length: 4
11 generator:
12 strategy: SEQUENCE
13 options:
14 unsigned: true
15 ordered_at:
16 type: datetime
17 nullable: true
18 customer_note:
19 type: string
20 nullable: true
21 version: true
22 internal_note:
23 type: string
24 nullable: true
25 version: true
26 options:
27 charset: utf8
28 collate: utf8_unicode_ci
29 oneToOne:
30 BillingAddress:
31 targetEntity: Address
32 joinColumns:
33 billing_address_id:
34 referencedColumnName: id
35 unique: true
36 onDelete: CASCADE
37 manyToOne:
38 DeliveryAddress:
39 targetEntity: Address
40 joinColumns:
41 delivery_address_id:
42 referencedColumnName: id
43 onDelete: CASCADE
44

2.Export it to complete definition files.

Download 14-day trial version

Try Skipper for free. No credit card needed.


How Skipper helps you

There are many ways how Skipper helps its users. Here are the most important of them:

  • Skipper saves up to 70% of time spent with definitions.
  • Graphical editing improves orientation in a model.
  • With Skipper you avoid all mistypes or errors.
  • Project import allows simple take over of foreign projects.
  • Visual model replaces project documentation and eases communication.
Skipper visual ORM model

Benefits for MVC frameworks


Supported MVC frameworks

MVC Framework Suported ORM Frameworks
Symfony (all versions) Propel, Doctrine, Doctrine2
Zend Framework (and Zend Fw2) Propel, Doctrine, Doctrine2
Laravel Eloquent, Propel, Doctrine, Doctrine2
CakePHP CakePHP
Any other MVC Propel, Doctrine, Doctrine2


Almost all Skipper features are MVC independent, so it doesn't matter which MVC framework you use as long as the ORM framework is supported by Skipper. Simply choose "Without MVC" option when creating (or importing) your project.

On the other hand, Skipper includes support for the biggest MVC frameworks and there is an added value for them. For example, Skipper offers better and faster files scanning (because of knowledge of directory structure), an extension in export formats (because some MVC frameworks use slightly different naming convention), etc.


Supported ORM frameworks



Import or creation of a new project with required ORM and MVC framework is easy with Skipper wizards. In the first step you choose ORM and in the second step your MVC framework. This ensures correct output format for following definitions export.

Skipper ORM framework import (Doctrine, CakePHP, Propel)
Skipper MVC framework import (Symfony, Zend)

Over 5,000 companies use Skipper every day


It saved us a lot of time designing and configuring complex data models. It is impressive to see what this software achieves on its own.

Michael Stoye, ColorGATE

We use Skipper on our daily basis for ecommerce software development. It lets us visualize at a glance the data models and work on them in a simple and easy way.

Dario Schilman, IDS Soluciones Ecommerce

It simplifies our work because it saves us time. With features added over time like adding behaviors to Propel in Skipper it has become an unmissable tool in our organisation.

Erwin te Bos, aXtion

Skipper is especially helpful in the initial data modeling phase. Exporting the data model and scaffolding makes it really easy to get a first prototype up and running in a matter of minutes.

Jörn Wagner, Explicatis

Skipper is a stable and easy to use schema designing tool! No documentation, just design and everything is documented!

Siebe Vos, Inform'aid

We have good use of the tool. It simplifies our daily work, saves us time and is simple and intuitive to use.

Thomas Somoen, Try/Apt

It is faster and gives less errors to have Skipper create the mapping code instead of writing it myself. Later in the development process I often use the Skipper diagram as a quick reference.

Herman Peeren, Yepr

Simply put, for us, Skipper is not just a tool to master, but a mastermind that teaches us the best programming practices.

Can Berkol, Biber Ltd

More user stories