Skipper - The ORM Designer Blog
  • Skipper - The ORM Designer
  • VsBuilds - Parallel building
  • Pulpo - Free Skipper CLI

Category: Skipper features

Skipper beta with Gedmo support available

After some weeks of hard work we are happy to announce that Skipper now supports also Gedmo extensions. New version with the support is so far available as beta, you can download it from a post about Gedmo extensions on our support forum.

Because Gedmo extensions support needed a lot of changes in the application, we are now looking for beta testers who will try it. So if you have a project with Gedmo extensions you are very welcomed to import them in your Skipper model and let us know, whether everything works as expected. We will be really glad for your help :-)

Gedmo extensions support is now available only for Doctrine 2 framework. But this is only temporary, as soon as the beta will be properly tested, also a support for MongoDB ODM will be added.

New namespace support in Skipper

Our latest release 3.2.0 brings to Skipper new way how namespaces are handled by our application.

Few words about history

Long time ago when the first version of our application was created (originally called ORM Designer), there hadn’t been things like namespaces in ORM frameworks. But as ORM frameworks have been developed in time, each framework came with some way how entity namespaces are being handled.

Because ORM Designer / Skipper needed to handle it too, we added support for namespaces in form of ORM attributes. This had been a functional and sufficient solution until Doctrine 2 has introduced new way how to handle namespaces and allowed several entities with the same name but in different namespaces.

For some time it wasn’t possible to create such models in Skipper because of internal limitations (each entity was represented by it’s local name only). But today with our latest release this limitation is over. We have reworked Skipper core and a way how unique names are handled and now it’s possible to create also these models.

New age of namespaces

Starting with version 3.2.0 each Module, Region, Entity and Collection can have defined its own namespace

Skipper region namespace settings

Namespace of each object is calculated from all its parents:

\Module\Region\SubRegion\Entity

Each of these objects can have defined own relative or absolute namespace. This means that in case of need sub-region can override namespace via absolute path. In such way, the final entity namespace will be:

\SubRegion\Entity

The same thing is possible also for Entity. In case you need to define one of your entities in different namespace than the rest of entities in the module, simply define absolute namespace directly for the entity.

New namespace system in Skipper

All this features are available to all ORM frameworks which support namespace. Namespace support is available for all import and export scripts as same as for visual editing.

Project file changes

Because of these changes it was necessary to update Skipper project files a little. There are two most important changes which caused that projects from 3.2.0 aren’t fully backward compatible with older versions.

The first change of XML format are new attributes @local-name, @name, @local-namespace and @namespace. Attributes starting with @local- are values defined on specified object. On the other hand attributes @name and @namespaces are calculated values depending on its parents.

The second change in XML format is deprecated <entity-ref> and <collection-ref> elements in project file. Instead of __ elements entities are stored in owner regions to keep the same hierarchy like in visual model.

For example, this means following. This is how looked original project file with entity in one region like:

<module name="module">
  <region caption="test">
     <entity-ref name="e1"/>
  </region>
  <entity name="e1"/>
</module>

And this is how project file looks like now:

<module name="module">
  <region caption="test">
     <entity name="e1"/>
  </region>
</module>

Conclusion

Although it might not be visible on the first sight, new namespace support was a very complex task. Because of that we had this feature for more than month in beta mode before releasing it to public. Thanks to all our testers we successfully localized and fixed several bugs caused by this new feature.

Now, when no more issues are reported we decided to publish it for all our users. We will be glad for any feedback.

Let us know how you like it!

ORM Designer presentations

Since a lot of you have asked, we prepared presentations about ORM Designer. Now you can show your teammates or anyone else, who may be interested in ORM Designer, what it can bring. With these slideshows you can demonstrate ORM Designer functionality to your team leader when needed more arguments to his conviction.

Prepared documents are suitable for personal presentation as well as for sending by email as the contained text has highly informative character. If you would like to add or modify something, please write it here to comments.

You can download these documents on the ORM Designer documentation website: help.orm-designer.com or directly on slideshare. Feel free to share it.

ORM Designer presentation

Do you need any other support materials? We will be happy to prepare it for you. Tell us what you need.

21 Apr 2014

From now on, ORM Designer updates automatically

Hello Everybody,

Well, this update is not yet automatic. So why should you bother to download the file and manually update ORM Designer again? For exactly that reason. All future updates will be automatic.

With our team growing, we have started releasing new updates more often, and having to download new version manually every two weeks or so might annoy some users. I know it would annoy me. But that is over now.

ORM Designer checks for new versions on start-up, and when there is a newer version, you will get a notification with a list of all new changes and fixes. And if you want to, you can allow the update to happen, so don’t worry that the application will be changing under your hands without you knowing.

And because you want all the new stuff to keep your ORM Designer up-to-date, just press the Update Now button. All you need to do now is to watch the progress bar.

Updating the ORM Designer is now almost as easy as creating definitions with it. Make your life another bit easier and get the latest version now.

27 Feb 2014

Posted by: Martin "Freki" Stradej

Skipper features #features #update

The Super Property Editor

Hello Everybody,

property editor2

We have the final upgrade of the Property Editor ready for you. Last time we gave you new button, now it is a whole new window.

We have attached the new Property Editor Drawer to every object Editor and Wizard, so you can now define values of ORM attributes and set ORM Designer configurations directly when you create an element. Following this logic, general properties (like name, type or size) are now editable from the Property Editor.

This means you can edit every thing about each element from the same place, its up to you if you like to use the Object Editor window, or if you set it up from the simple table of the Property Editor. Or you can combine both, to achieve faster, more streamlined workflow. And ORM Designer is all about removing unnecessary steps so you can concentrate on what needs to be done.

So last time it was a button, now a window. To keep up the pace it will have to be new application next time I guess.

18 Feb 2014

Posted by: Martin "Freki" Stradej

Skipper features #features #properties

Properties reworked

Hello Everybody,

Today’s buzzword is properties. ORM properties. ORM properties are the reason why ORM Designer is the best choice for your work with ORM frameworks. Keeping track of all the properties and defining them is pretty tedious if you do it by hand. We know. That’s why we made ORM Designer in the first place.

But now we finally got around to tweak the way you edit them. First we’ve separated the three main groups: General properties, where you have everything you can see in the visual model, ORM properties, which are making your code tick, and the Configurations, where you can specify the export paths, file extensions and all the inner workings of ORM Designer. But it gets better.

filterbutton

The new Quick Filter button in the properties may not seem much at the first glance. But when you find out, how much clicking it saves you when sorting through the Property Editor, you will love it. Big time.

And to tease you a little, all these changes are groundwork for the main change in the Property Editor. We are working on the Big One, but we didn’t want to overwhelm you with goodies, so we are releasing them one by one. PS: Okay, I take it back. Today’s buzzword was ORM Designer again.

And don’t work too hard, you know you don’t have to with ORM Designer.

13 Feb 2014

Posted by: Martin "Freki" Stradej

Skipper features #features #properties

One application, twelve months, countless improvements

This is a quick rundown and overview of what features were added or improved in the last twelve months during which ORM Designer 2 is available. Here are the adjustments we are proud of the most.

Product Tour

Ten graphical slides, built directly into the application. They have high information value and explain the basic functions and features of ORM Designer.

New wizards

Smart and easy to use, these wizards made many operations faster. They guide you through the process of existing project import , creating new project or attaching of ORM Designer module.

Free viewer

Perfect for everyone who wants to share their models with colleagues or customers. It allows viewing of whole model including entities present in it and relationships between them, but without ability to edit anything. Free tool available for everyone, even for those without full license

New documentation

Very detailed and comprehensive websites that provide information about everything related to ORM Designer. It is thematically segmented, fully searchable and linked, so you won’t have to scroll through any monstrous pdf.

Language mutations

We made ORM Designer translatable and the first volunteers applied to implement their native languages into it. Any help is welcome, so if you are willing to translate our application into your language, contact us.

Templates

Advanced feature able to save you a lot of time. ORM Designer can automatically create some elements for you. How these new elements will look depends on setting of model elements templates, which are fully customizable.

Additional goodies

We have been working on many other features and enhancements, to stay concise here is the short list of some of them.

03 Feb 2014

Posted by: Martin Kulhavy

Skipper features Behind the scenes #features

Guilty of idealism

Alternate foreign key

Hello Everybody,

ORM Designer was growing up in pretty idealistic environment. We wanted it to be a tool that will generate clean and readable code. Elegant tool for elegant solutions. In our minds the ORM Designer was not an ordinary ORM tool, but the sharp and efficient ORM scalpel.

However, developer’s life is not just polished garden of immaculate design solutions. Sometimes you need a hammer. And a big one. One of our users contacted us about pretty unusual solution, having a foreign key pointing to different column than the primary key.

At first, we did not like it. But then he presented his situation of multiple databases in great deal of detail, and we had to agree, that his solution might not be an elegant one, but it was the only reasonable one. Our goal is, after all, having ORM Designer help our users, and do their work for them.

So we have implemented this functionality as a part of our latest release (it is only supported by some frameworks though, namely Propel and Doctrine). You can learn more about it in our documentation.

Do you need to tackle a difficult task? Do you feel that ORM Designer could help you but something is missing? Let us know, we can add specific functions. After all, ORM Designer is a tool intended to help with all your work.

02 Jan 2014

Posted by: Martin "Freki" Stradej

Skipper features #features

Template revival

Entity defined by template

entity defined by template

Hello Everybody,

One of the most interesting features of  ORM Designer is its customizability. Now we took it to the next level. We have vastly enhanced the template functionality. It’s so awesome now, that I don’t even know where to start.

We have already had templates for some basic functions in place, but we thought, well lets make templates for everything. And we did it! After two weeks of hard labour, strenuouss tests, documentation and despair we can proudly present the NEW TEMPLATES.

Do you want to be sure all your entities have their primary keys? You can. Do you want the aliases used in your associations being generated automatically? They will be. Do you want to create your entities with the repeating fields already defined. No problem, you can have your IDs, names, createdAt and updatedAt with just single click. Do you want to completely define your whole project using templates and just have it built the exact moment you press the Create new project? I can’t see why would you want to do that, but you totally can.

Everything can be manged by a template now, primary keys, aliases, association and inheritance fields, Many-to-many entities, even names and values of ORM properties like the export paths. Templates can be now set separately for Doctrine, Doctrine 2, Propel and PHP Cake and you can even have templates applied on import or changes in your model.

Do not worry, all the old templates will still work, but now you can use the predefined template library, or you can learn how the templates work, and make the exact templates you need.

12 Dec 2013

Posted by: Martin "Freki" Stradej

Skipper features #features #templates

Finally out of the gridlock

So you have all noticed the grid in the ORM Designer, it is this handy little tool to neatly organize all your entities and modules. It was okay, but we had a look at it and thought, “okay is not enough for our users”.

Grid Settings

Oh boy, we did not see how big can this little feature get. We spent hours tweaking, arguing, tweaking again, researching, and tweaking even more. Well, it is pretty much perfect now.

You can set all the regular stuff like color and size, but you can also use this mysterious slider called “Grid Sticking” to adjust how firmly will your elements stick to the grid. All your settings will be shared between the tabs and projects and it goes without saying your changes will not get lost when you close the application.

And as always, let us know if you have an idea to make this tool even better. We strive for ORM Designer to be as user-friendly as humanely possible and we’re having great fun implementing all the little features and enhancements.

06 Dec 2013

Posted by: Martin "Freki" Stradej

Skipper features #features #grid

Not every mutation is bad :-)

If you expect an article about genetics or superpowers you will be probably little disappointed. But we think the new ORM Designer feature is quite cool too, so let’s take a closer look at it. In the last week we prepared ORM Designer for language mutations.

From now, English is not the only one

Till now, the application has spoken only English. For most users it is fine with no doubts, it is the most widespread language all around the world. But still, native language is native language and to have commands in application translated is much more comfortable.

To find out if everything works fine, we tested the translation mechanism on our native language. As you can see in the picture above, in the new ORM Designer release Czech is also available :-)

You might have guessed it, but two language versions isn’t our goal. Right now the application is being translated into Spanish, but there are many more languages ORM Designer wants to speak!

Join us!

If you want to join us in our effort to make ORM Designer really multi-language tool, we will be more than happy. Head to the article about Localization and follow described steps.

When you finish the work, share the translation files at our support forum with the rest of the community and enjoy the eternal glory as our greatest heroes :-)

And the last thing, this is how we want ORM Designer localizations to look like :-)

06 Dec 2013

New documentation

Our new documentation

As you might have noticed, in the last few weeks we were neglecting our blog a bit. The reason for this is that our whole team is currently busy finishing new documentation, and we are excited to tell you that the launch is planned for the next week.

Don’t worry, no bulky pdf with hundreds of pages is heading your way. Simple is smart, and the documentation completely follows this rule. We created it in a shape of simple websites thematically** sorted** by its main topics. For intuitive navigation, the search function has also been added.

The documentation is divided into four main sections:

  • Common Information: FAQ, license conditions, supported platforms, etc.
  • How to Use: general concepts of working with ORM Designer
  • Frameworks Tutorials: specifics of working with selected framework
  • Expert Usage: advanced configuration and customization of application

We are looking forward to introduce documentation publicly, but there is still a lot of work ahead of us. To create something comprehensive, concise and visually appealing is not easy.

Keep your fingers crossed so we deliver it on time, with understandable content and clear form. Follow our blog and we will inform you about the precise date of launch.

12 Nov 2013

Implementation of JPA-Hibernate support started

Since last year we have received many request to implement a support for Java JPA-Hibernate framework. So now we decided to come up to expectations and last week we started to work on implementation.

hibernate

As Java ORM is slightly different from the PHP ORMs already supported by ORM Designer, we’re looking for some enthusiasts who would test a beta version when available. If you are interested, please contact us at [email protected].

We would also appreciate some JPA-Hibernate projects so we can run tests during the implementation. You will be very welcome if you send them to [email protected]. Each project will be treated strictly as confidential and no data or model parts will be visible to anyone else.

If you have any ideas about the implementation, you can discuss below.

25 Jul 2013

Posted by: Iva Kubickova

Skipper features #jpa

Free viewer helps you show your model to customers

For those who sometimes needs to show a project to his colleagues or customers, ORM Designer now offers a new free version. ORM Designer Viewer is time unlimited and enables to browse the whole model with its objects and associations. However, all editing functions  are disabled.

viewer

How to launch ORM Designer Viewer

Simply download version 2.2.1.734 from download page and install the application. After the installation and first start, the welcome screen with license activation appears. Now please select the third option - Free viewer only and click the Next button.

welcome_license_activation2

And that’s it, we’re done. Now you can use ORM Designer Viewer.

Is this free version interested for you? Will you use in your team? We would appreciate your feedback, feel free to discuss below this blog post.

04 Jul 2013

Posted by: Iva Kubickova

Skipper features #features #viewer

Reordered file menu and new icons for more comfort work

As we are constantly improving the interface of the application, we have reordered items in the file menu. New order is a result of last user testing. Now they should help you work even faster and find required action more easily. We have also add new icons so they more precisely express the functionality of menu items.

file_menu2

Icons have been created specially for ORM Designer. But because we’d like to support also new applications and start-ups, we decided to publish PNG formats as giveaways. They can be used both for commercial and non-commercial use as long as they are not sold by themselves. We would be also happy if you inform us about using icons.

Download PNG icons with 32x32 pixels resolution

Download PNG icons with 64x64 pixels resolution

icons_set_64x64

So what you think, do you like new file menu?

04 Jul 2013

Posted by: Iva Kubickova

Skipper features #features

New wizards for quicker and more intuitive work

Some tasks in ORM Designer might be a little bit confusing while beginning with the application. To make these task more intuitive and quicker, from version xxx.xxx the new wizards are available. They will guide you during:

  • existing project import,
  • creating of a new project with or without ORM framework,
  • import of a model from external modelling tools (DBDesigner, MySQL Workbench),
  • attaching of ORM Designer module,
  • import of ORM** schema file** into a project,
  • import of model from DBDesigner or MySQL Workbench into a current project,
  • license activation.

But not only the functionality of wizards is important. To make your work more comfortable we tried to create them nice and user friendly. So they have unified visual style and contains frameworks icons for better orientation.

Now lets take a look at a Project Import Wizard.

Import wizard: Select ORM framework

Import wizard: Select MVC framework

Import wizard: Project settingsimport_wizard_7

import_wizard_8 So what you think, will the wizards help you  work faster? And do you like it? Discuss below.

04 Jul 2013

Posted by: Iva Kubickova

Skipper features #features

Product tour for better work flow understanding

ORM Designer offers a lot of functions and features. However, for some new users it doesn’t have to be exactly clear how ORM Designer can help them and what the core features are. For those we have added new product tour to the application, which is available from version 2.2.1.734. Tour contains 10 graphical slide which should help better understand the work flow from the model import / creation up to the definitions export.

welcome_screen

If you want to take a look at the tour slides right now, above is an online version.

  1. Import or create new project 1_project_import_resized
  2. Model overview 2_model_overview_resized
  3. Navigate through the model and edit items 3_project_tree_resized
  4. Module editor 4_module_editor_resized
  5. Entity editor 5_entity_editor_resized
  6. Associations 6_association_editor_resized
  7. Inheritance 7_inheritance_editor_resized
  8. Many to many 8_many_to_many_resized
  9. Properties 9_properties_resized
  10. Definitions export 10_export_resized
04 Jul 2013

Posted by: Iva Kubickova

Skipper features #features

New feature: Improved color picker in ORM Designer

Color picker

We’d like to introduce you our improved color picker in ORM Designer which is available from version 2.1.12. You can download it HERE.

From now you can create nice and well arranged models quickly and simply so they will be easily readable for you and your colleagues.

Use your favorite colors to distinguish your project modules and regions. With the same color tones you can also highlight the ORM elements which are related. With color picker you can also colorize the comments in your model.

Simple and user friendly

To colorize the region or module use double click on required area and open the color picker.ORM Designer - Improved color picker

You can choose from 3 color pallets. Select your favorite colors from basic or pastel pallet and mix the colors according to your preferences. Or you can simple use pre-defined color themes from the third bookmark.

For your inspiration here are examples of color themes usage.

ORM Designer - color theme usage

ORM Designer - color theme usage

ORM Designer - color theme usage

ORM Designer - color theme usage

30 Apr 2013

Posted by: Iva Kubickova

Skipper features #features

Propel ORM Behaviors support!

Note: This feature is currently available only in beta-version 1.4.5. If you want to try it, please download latest version from http://www.orm-designer.com/beta.

Another news for Propel ORM users! Today I want to introduce you new Behaviours support feature.

ORM Designer supports two ways how to handle behaviours. The first way uses predefined behaviour list of already known behaviours, the second way uses customBehaviour type to define any behaviour by it’s name and params.

Use of custom behaviors

For setup custom behaviour to any of your tables, follow next steps:

  1. Mark the requested table
  2. In ORM Properties list click “Add item” next to “Behaviors” property Propel ORM custom behaviors
  3. Select “customBehavior” from the list Propel ORM custom behavior
  4. Enter behaviour name to relevant “name” property Configure custom behavior name in Propel ORM
  5. If your behavior has some parameters, add them by using “Add item” next to “CustomParameters” property Custom parameter for ORM Propel behavior
  6. After that you have to enter the parameter name and the parameter value. You can add unlimited number of additional parameters. Configure custom param value in Propel ORM behavior
  7. And this is it ;-). Now when you export your model, you can see definitions like this:

Use of predefined behaviours

Using of predefined behaviours is better than custom one in several ways. As first, you don’t have to write behavior name again and again but you can simply select it from a list. The same thing is for the behavior parameters. The second advantage is that for specific parameter values there is an automatic completion and offering of preferred values (booleans, column names, … ). Now I show you how to define “Timestampable” behavior for a specific entity.

  1. The first steps are the same as in the previous example. Select the requested entity, click “Add item” next to “Behaviors” property and select desired behavior. In our example “Timestampable”. Propel ORM timestamplable behavior
  2. Now you can configure timestampable behavior by using two predefined properties “create_column” and “update_column”. When you click on the arrow next to property value, you can simply choose the one of available columns. Timestampable behavior Propel ORM
  3. Each predefined behaviour has also an option to define another additional behaviour parameter. This can be simply achieve by using “customParameter” as well as in the case of the custom behaviors. Custom property for timestampable behavior
  4. When you add one or more custom parameters you can simply configure them. Custom property for Timestampable behavior

List of currently supported Propel ORM behaviors:

  • NestedSet
  • SoftDelete
  • Sluggable
  • Timestampable
  • Sortable
  • Aggregate
  • Versionable
  • I18n
  • Query Cache
  • AutoAddPk
  • Alternative Coding Standards

Note: Remembr that you can anytime use customBehavior if you need to use behavior not listed in list above. If you find any behavior which is common for more users and isn’t listed here, let us know and we will add it to ORM Designer configuration.

I hope you like this new function and as always if you find any bug or have any idea feel free to let us know!

27 May 2011

Posted by: Ludek Vodicka

Skipper features #features #propel

Propel ORM validators support!

Note: This feature is currently available only in beta-version 1.4.5. If you want to try it, please download latest version from http://www.orm-designer.com/beta.

While working on a new ORM Designer version we prepared one significant improvement of the current ORM Designer version for all Propel ORM users.

From now, ORM Designer natively supports all Propel core PHP validators mentioned in the documentation.

The usage is simple, as usually ;-). Create an object, add few fields and commit changes. Then select desired field of the model and look to the ORM Properties editor:

Propel PHP validator

Now, when you click on the add icon you can choose from the list of available validators or choose one of two special items “otherValidator” or “customValidator”:

List of available PHP Propel ORM validators

  • OtherValidator use in special cases when you want to use validator which isn’t listed in this list. This validator choose if you would like to enter all validator identificators like name,value and message and these values will be added to the specific column.
  • CustomValidator is there for cases when you have implemented your own validator and want to use it in a specific column. In this case simply add a class name to this validator and ORM Designer will export it for you.

You can have zero,one or more validators of one type for one column because of multiple instances of custom or other validator. Here are few examples of already configured validators:

Other Propel ORM validators minLength, maxValue, match Propel ORM Validator

Now, when you press “Export” button, your XML file will look like this:

Propel ORM XML file

Note: Validators aren’t supported for YAML export, because there isn’t support in Propel ORM! (there is link: http://trac.symfony-project.org/ticket/1769)

05 May 2011

Posted by: Ludek Vodicka

Skipper features #features #propel

New visual symbols for NULL/NOT NULL column types

Today I want to show you a new small feature in ORM Designer 1.4.2 which helps you with navigation in the model. Until now, ORM Designer has shown only three different icons in a column for primary keys, foreign keys and other columns. Today we have added another three types for differentiation of NULL and NOT NULL columns. Empty diamonds beside the column names symbolize columns where NULL is allowed, filled diamonds where value is requried.

Here is screenshot of this feature:

This feature is in current version of ORM Designer (Skipper). Download here: http://www.skipper18.com/en/download

13 Oct 2010

Posted by: Ludek Vodicka

Skipper features #features

Prefixes for Doctrine ORM entities (useful for Doctrine and Zend Framework)

Today I want to show you a new feature of ORM Desigener for Doctrine ORM. It is an ability to define prefix for a whole module by which ORM Designer exports every entity with a name composed of this prefix and stand-alone name. In the past we received several requests from Zend Framework users for this feature, so here it is ;-).

This feature is the most useful for Zend Framework users, but might be used by every Doctrine ORM user. When using Doctrine ORM with Zend Framework you have to create the names of your entities with prefixes as Default_Model_Entity_Name or Forum_Model_Entity_Name (more about this topic is described in the article Doctrine1 Integration with Zend Framework).

And how does it work? Here is a screenshot of an example model:

In this model we’re using simple and nice entity names like “parent” or “child”. To “entity_prefix” attribute of each module we enter common prefix for all entities. After that when we export the model to the YAML file, we get a following result:

APPLICATION_child:
  columns:
    id:
      primary: true
    parent_id:
  relations:
    APPLICATION_parent:
      foreign: id
      local: parent_id
APPLICATION_parent:
  columns:
    id:
      primary: true
MODULE_derived:
  columns:
    id:
      primary: true
  inheritance:
    extends: MODULE_external
    type: simple
MODULE_external:
  columns:
    child_id:
    id:
      primary: true
  relations:
    APPLICATION_child:
      foreign: id
      local: child_id

I hope this function will help you a bit more with you everyday work ;-)

08 Sep 2010

Posted by: Ludek Vodicka

Skipper features #doctrine #tips #zend

New version notifier for ORM Designer

Another small improvement for upcoming new 1.4.x version of ORM Designer is a new version notifier. Here is a screenshot of this new feature:

16 Aug 2010

Posted by: Ludek Vodicka

Skipper features #features #orm designer

New feature for CakePHP users – DB Schema export

Today I would like to introduce you a new upcoming feature for CakePHP users. Nowadays ORM Designer can export php classes for your model objects. But when you want to use CakePHP migrations, you have to make the DB changes manually. This would change in the next ORM Designer release. Besides model classes ORM Designer knows how to generate CakeSchema (http://book.cakephp.org/2.0/en/console-and-shells/schema-management-and-migrations.html) object class which defines a whole DB structure.

Usage of this new function is very simple. In your current ORM Designer model choose “Project object”

CakePHP schema management and migrations

In Project property window there is a new item Schema with child export-file.  Select “export-file” property and click on the button with three dots and choose export file for schema file.

Export CakePHP schema file

Now, if you export your model by using “Export to ORM” button, beside the model object files DB schema file will be also generated.

For our example DB schema file will look like this:

<?php
/* SVN FILE: $Id$ */
/* App schema generated by: ORM Designer (http://www.orm-designer.com) */
class AppSchema extends CakeSchema
{
  public $name = 'App';
  public $Contact =
    array (
      'ID' =>
        array (
          'type' => 'integer',
          'null' => 'true',
          'default' => 'NULL',
          'key' => 'primary',
          'length' => '4'
        ),
      'Name' =>
        array (
          'type' => 'string',
          'null' => 'true',
          'default' => 'NULL'
        ),
      'Age' =>
        array (
          'type' => 'integer',
          'null' => 'true',
          'default' => 'NULL'
        ),
      'indexes' =>
        array (
          'PRIMARY' =>
            array (
              'column' => 'ID'
            )
        )
    );
}

Note: This feature will be available in 1.4.0.420 and later.

05 Aug 2010

Support of CakePHP validators in ORM Designer

Today we finished beta support of CakePHP validators in ORM Designer. Thanks to Stefano Manfredini for giving us the idea and testing this new feature. You will find this new feature in upcoming ORM Designer 1.4.0 version build 417 and later.

Screenshot of testing model with entered validators:

Detailed screenshot to all supported validators in ORM Designer:

How to use it

If you want to add a validator to any field in your model, follow next instructions:

  1. Select the field where you want to define new data validation.
  2. In ORM Property window click on Validator item ->  ”Add Item”.
  3. After clicking on “Add Item”, the window with all supported validators appear. Choose the required validator and press OK.
  4. After selecting validator from the list, you can add some additional parameters.  You can do this by selecting  added validator and entering value to the correspond property.

After you enter all required validators, you can “Export” them to base class.

And it’s done. No more complicated and confused array definitions, simple design it in ORM Designer ;-)

List of currently supported validators include their parameters:

  • alphaNumeric
  • between
    • minimum
    • maximum
  • blank
  • boolean
  • cc
    • type
    • deep
    • regex
  • comparison
    • operator
    • value
  • date
    • format
  • decimal
    • decimal
  • email
    • validate-host
  • equalTo
    • value
  • extension
    • value
  • ip
  • isUnique
  • minLength
    • value
  • maxLength
    • value
  • money
    • position
  • multiple
    • in
    • min
    • max
  • inList
    • values
  • numeric
  • notEmpty
  • phone
    • reg-ex
    • country
  • postal
    • reg-ex
    • country
  • range
    • minimum
    • maximum
  • ssn
    • reg-ex
    • country
  • url
    • strict
  • reg-ex
    • regex
  • own-function
    • name
    • params

All validators have folllowing commont properties:

  • name: Rule name used in definition array when field has multiple validators
  • required: Require flag, for more information follow CakePHP documentation.
  • allowEmpty: AllowEmpty flagfor more information follow CakePHP documentation.
  • on: Validator type. Can be NULL/create/update. For more information follow CakePHP documentation.
  • message: Error message for the rule.For more information follow CakePHP documentation.
  • last: Flag used when one field have multiple validators. More information about last flag in CakePHP documentation .
18 Jul 2010

Inheritance support in ORM Designer

One of other major features introduced in ORM Designer 1.4.0 is inheritance support. Currently supported frameworks are PHP Doctrine and Doctrine2.

There are several ways how to create inheritance between entities.

1) Inheritance tool

If you want to use inheritance tool, first select this tool on the ribbon window:

With this tool selected click on base entity from which you want to inherit.

Next click on entity that should be derived from base entity.

Once the inheritance is created, you can configure more parameters in the Property editor.

2) Inheritance wizard

If you want to use inheritance wizard, select entity in model and use “Create Inheritance”command from ribbon tab “Editing”.

In the Create New Inheritance wizard select base and derived entity from the list of entities in the combo boxes.

You can also select type of inheritance, discriminator field and discriminator value for created inheritance.  More information about additional parameters is at the end of this article.

3) Create inheritance in project tree

You can also create inheritance through project tree. Simply select entity (which will be used as the base entity for inheritance) in the project tree and select “Add Inheritance” in the context menu (right-click on the entity).  New inheritance wizard will be executed after this step (same wizard as in previous step).

4) Create inheritance in entity edit window

Another way how to start “New Inheritance Wizard” is through the edit entity window. Select “Inheritance” tab in the “Edit entity” window. In this tab select “Add Inheritance” from top tool bar to start “New Inheritance Wizard”. This tab also contains list of all extending and base entities.

Inheritance Additional parameters

Type of inheritance is ORM framework dependent. For PHP Doctrine framework is available Simple inheritanceConcrete inheritance or Column aggregation inheritance. For Doctrine2 is currently available Single table inheritance  and Class table inheritance.

Note: Mapped superclass isn’t currently supported, because there is no way how to define it in YAML or XML file format.

13 Jul 2010

Inheritance in ORM Designer – First screenshot

One week after first ORM Designer 1.4.0 public beta release we’re finishing full support of Model Inheritance. Inheritance will be available for Doctrine and Doctrine2 ORM frameworks. Within a few weeks we want to implement inheritance support also for the new version of Propel 1.5..

Bellow is a screenshot of simple model with inheritance and association. On the right side of the screen is a detail of inheritance editor.

05 Jul 2010

Updated Doctrine association property editor

ORM Designer 1.4.0 is almost here and we want to give you yet another peek of what is coming. ORM property editor is the core feature since the first release of ORM Designer but it can be sometimes hard to use and understand which values to fill. Especially association configuration (“alias” / “foreignAlias”, “type” / “foreignType”, “cascade” / foreignCascade”) was one of these cases. Some of these association properties were side-dependent and others were  same for both sides (in Doctirne ORM for example database attribute “onDelete”). From now on you’ll find side-dependent properties grouped by owning-side and inverse-side with destination table hint for better orientation.

ORM Designer screenshots

On the left side is old version, on the right side new one.

ORM Designer 1.3.x

New property editor in ORM Designer 1.4.x

On the left side is old version, on the right side new one.

Detailed screenshots of side-dependent groups with selected direction assistant:

26 Jun 2010

New Doctrine 2 object properties editor

When we started implementing Doctrine 2 support we had to deal with many new ORM framework features. Doctrine 2 has many new associations and the association definition is more descriptive than before. To solve this problem we hacked the powerful ORM property editor. Bellow you can see some of the new features. You get direct configuration of object properties with predefined values and validators. And as you are used to from Doctrine 1, Propel and CakePHP you get inline help on the places that might be confusing.

ORM property editor object and field:

Doctrine 2 object property editor

Doctrine 2 field property editor

Property editor example of one-to-many association and many-to-many association:

Doctrine 2 association properties

Next step before releasing public version is ORM and ERD terminology unification. It’s a bit confusing in current versions when you are editing ORM application model and all model components are named as you are used in ERD (e.g. on the first screenshot is “object” still called “table”. Relation is called “foreign-key”,…).

21 Jun 2010

Posted by: Ludek Vodicka

Skipper features #orm designer

First ORM Designer Doctrine 2 project screens

After serveral weeks of intensive work on ORM Designer we’re almost done finishing Doctrine 2 support. You can find two new screenshot bellow with correctly imported Doctrine 2 model. Used models can be found in Doctrine 2 unit tests.

First alpha version is almost ready to be released, we have to do some final touches to the user interface.

Screenshot of CMS testing project:

Screenshot of Navigation testing project:

Screenshot of import project screen in ORM Designer:

18 Jun 2010

Updated property editor in ORM Designer 1.4.x

In this post I want to show you one of the new features to be released in ORM Designer 1.4.x. ORM Designer works differently with core properties and ORM framework dependent properties. This is due to different features provided by ORM frameworks. For example column core properties are name, type, length, description etc. and ORM properties scale and unsigned in Doctrine ORM.

With the coming release of ORM Designer with Doctrine 2 we have to do refactoring of many windows. Also some of the properties previously located under ORM dependent properties would be moved to the core properties. As a result you should be able to faster and easier define foreign and local alias of relationship/association and other common tasks. As this would be a change in the way you were used to work before we wanted to make sure you’ll find what you are looking for. We’ve merged core properties and ORM dependent properties into a single window so you could see all applicable properties at the same place.

Here are some screenshots:

First screenshot shows editing module in Doctrine ORM project, second screenshot is active property editor editing objects column.

08 Jun 2010

Posted by: Ludek Vodicka

Skipper features #features #orm designer

New error handlers in ORM Designer 1.4.x

One of new features in upcoming ORM Designer 1.4.x will be updated error handlers. No more old unmeaning error boxes with short message. New handlers will have intuitive gui with well arranged controls.

ORM Desginer exception - summary

Log Output

The main change will be a new Log output tab where user will found detailed information about raised exception. This tab will contain more detailed information about the error or raised exception. When user will work with new ORMD script system and running script will cause the error, this tab will contain the log of script execution with all variables and their values.  (Script system is also developed for 1.4.x version, more about it in next post).

ORM Desginer exception - show log

02 Jun 2010

Posted by: Ludek Vodicka

Skipper features #features #orm designer

New tool - ORM Designer

ORM Designer released

ORM Designer

Today we have officially released our application, ORM Designer, to public. For more than 3 years, we have used it as an internal tool for our Symfony and Propel/Doctrine based commercial development. Since it helped us a lot, we decided to offer it to more users.

ORM Designer will allow you to design your schema definitions using ER diagrams. You won’t have to write your XML/YML definiton files manually from scratch. You won’t have to keep up-to-date documentation and diagrams in another tool. Everything will be in one place: you will design your models visually in ORM Designer, and ORM Designer will then generate the code.

Try our application out, you will like it. And let us know your comments or ideas, we are interested in your opinions.

Application is offered for a starting price of €99. This includes a year of support and updates for free. After this period,  you can extend your maintenance for another year. Each extension will cost 30% of the original price.

05 Dec 2009

Posted by: Ludek Vodicka

Skipper features #doctrine #tools #propel