Visually edit Propel definitions

Import, edit, and export Propel definitions in a few clicks.

Increase speed and comfort of your work.

Entity
Bundle
Project
Skipper diagram - entitySkipper diagram - bundleSkipper diagram - project

1. Visually edit your project model.

XML
YML
<?xml version="1.0"?>
<database name="Ecommerce">
  <table name="EcommerceOrder">
    <column name="id" type="Integer" size="4" autoIncrement="true" primaryKey="true"/>
    <validator column="id">
      <rule name="unique" message="Value must be unique"/>
      <rule name="required" message="Value is required"/>
    </validator>
    <column name="ecommerce_order_state_id" type="integer" size="4"/>
    <column name="contact_id" type="integer" size="4"/>
    <column name="delivery_address_id" type="integer" size="4"/>
    <column name="billing_address_id" type="integer" size="4"/>
    <column name="ordered_at" type="Timestamp"/>
    <column name="customer_note" type="Varchar"/>
    <column name="internal_note" type="Varchar"/>
    <unique name="IX_UQ_EcommerceOrder_billing_address_id">
      <unique-column name="billing_address_id"/>
    </unique>
    <foreign-key foreignTable="EcommerceOrderState">
      <reference foreign="id" local="ecommerce_order_state_id"/>
    </foreign-key>
    <foreign-key foreignTable="Contact">
      <reference foreign="id" local="contact_id"/>
    </foreign-key>
    <foreign-key foreignTable="Address">
      <reference foreign="id" local="delivery_address_id"/>
    </foreign-key>
    <foreign-key foreignTable="Address">
      <reference foreign="id" local="billing_address_id"/>
    </foreign-key>
    <behavior name="timestampable">
      <parameter name="update_column" value="created_at"/>
      <parameter name="create_column" value="cupdated_at"/>
    </behavior>
  </table>
propel:
  EcommerceOrder:
    id:
      type: Integer
      size: 4
      autoIncrement: true
      primaryKey: true
    ecommerce_order_state_id:
      type: integer
      size: 4
      foreignTable: EcommerceOrderState
      foreignReference: id
    contact_id:
      type: integer
      size: 4
      foreignTable: Contact
      foreignReference: id
    delivery_address_id:
      type: integer
      size: 4
      foreignTable: Address
      foreignReference: id
    billing_address_id:
      type: integer
      size: 4
      foreignTable: Address
      foreignReference: id
    ordered_at:
      type: Timestamp
    customer_note:
      type: Varchar
    internal_note:
      type: Varchar
    _uniques:
      IX_UQ_EcommerceOrder_billing_address_id: [billing_address_id]
    _propel_behaviors:
      timestampable:
        update_column: created_at
        create_column: cupdated_at

2. Export it to complete definition files.


Why use Skipper

Simple Project import

The smart import wizard allows you to import any of your Propel projects in just a few seconds. The created visual model lets you discover all objects and the logic among them.

Skipper file menuSkipper Propel import wizardSkipper Propel import wizard - definition filesSkipper imported Propel project

Definitions exported by one click

Export your project into Propel ORM definitions any time you need. Standardized output is completely ready-to-use — you don't need to edit or add anything.

Skipper Propel export settingsSkipper Propel export resultsPropel definitions exported by Skipper

Editing in visual interface

Create and edit all objects visually via smart dialogs and wizards. All changes in the model produce appropriate changes in exported Propel definition files.

Skipper entity editor for PropelSkipper package editor for PropelSkipper Association editor for Propel

Lower need for Propel skills

Value advisors, validators, and assistants, combined with definitions generated via standardized templates. Don't worry about Propel syntax and keywords anymore.

Skipper Propel property editor - behaviors i18Skipper Propel property editor - behaviors timestampableSkipper editing Propel fields

See all the features


Support for all Propel features

Supported formats

Skipper supports all available Propel formats. Import and export your projects in XML or YML (YAML).

Skipper Propel definitions XMLSkipper Propel definitions YAML

Entities and modules

Create a new or edit an existing entity and change its fields and ORM properties. For better orientation in your Propel project, organize entities into colorful modules and regions.

Skipper Propel entitiesEditing Propel fields in SkipperSkipper visual model of Propel project

Associations

Connect entities by one-to-one, one-to-many, and many-to-many associations. Define owner and inverse entity or MN entity and aliases. Smart wizards will help you set up Propel associations.

Skipper Propel Many-to-Many wizardSkipper Propel Association wizardSkipper Propel Many-to-Many editorSkipper Propel Association editor

Inheritance

Create and edit Propel inheritance via intuitive dialog simply and quickly. Choose base and derived entity, set up inheritance type and define inheritance discriminators.

Skipper Propel inheritance wizardSkipper Propel inheritance editor

Indexes

With Skipper you can create indexes in a few clicks. In a user-friendly visual interface, define all needed indexes and choose fields indexed by them.

Skipper Propel index editor

ORM Properties

You can edit any of your model properties directly in the visual model. Skipper offers a unique Property Editor where any value can be modified.

Skipper Propel property editorSkipper Propel property editor comboSkipper selecting Propel behavior

Customization

You can customize configurations for your Propel project. Define your own datatypes and custom properties, add new behaviors, or change existing properties.

Support for MVC frameworks

No matter which MVC framework you use, whether it is Symfony, Zend, or any other. Definition files generated by Skipper have support for any existing MVC framework.

See all the features

Over 5,000 companies use Skipper every day

Thomas Somoen, Try/Apt

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

Herman Peeren, Yepr

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

Detailed list of supported Propel ORM features

Skipper model properties

ObjectProperty
Projectname, storage path, description
Modulename, description, external plugin storage, export path and format
Entityname, description
Fieldname, type, size, required, unique, primary key, auto increment, default value, enum values, description
Associationowner/inverse entity, reference fields, owner/inverse alias, association type (one-to-one, one-to-many), parent requirement, description
Many to Manymn entity, owner/inverse entity, reference fields, owner/inverse alias, description
Inheritancebase/derived entity, inheritance type, discriminator value/field, description
Indexname, unique, indexed fields, description

Propel ORM model properties

ObjectProperty
Project-
Modulename, namespace, defaultIdMethod(native,none), package, baseClass, basePeer, defaultPhpNamingMethod (nochange, underscore, phpname), heavyIndexing
EntityBehaviors, Vendors (type, parameters), isI18N, i18nTable, idMethod(native, none), phpName, skipSql, abstract, phpNamingMethod, baseClass, basePeer, heavyIndexing, readOnly, treeMode(NestedSet, MaterializedPath), reloadOnInsert, reloadOnUpdate, allowPkInsert, package
FieldValidators, primaryString, isCulture, index, onDelete, phpName, peerName, phpType, sqlType, scale, phpNamingMethod, inheritance, inputValidator, defaultExpr, defaultValue, lazyLoad, scale
AssociationonDelete, onUpdate, phpName, refPhpName

Propel ORM datatypes support

  • Boolean

  • Integer

  • Float

  • Double

  • Real

  • Decimal

  • TinyInt

  • BigInt

  • Char

  • Varchar

  • LongVarchar

  • CLOB

  • BLOB

  • Date

  • Time

  • Timestamp

  • ENUM

  • Array

Propel ORM associations support

  • Propel One to one (one-to-one)

  • Propel One to many (one-to-many)

  • Propel Many to one (many-to-one)

  • Propel Many to many (many-to-many)

Propel ORM behaviors support

  • customBehavior

  • nested_set

  • soft_delete

  • sluggable

  • sortable

  • aggregate_column

  • versionable

  • i18n

  • query_cache

  • auto_add_pk

  • alternative_coding_standards

  • timestampable

Propel ORM validators support

  • match

  • notMatch

  • maxLength

  • minLength

  • maxValue

  • minValue

  • required

  • unique

  • validValues

  • type

  • otherValidator

  • customValidator