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

Tag: #features

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!

Support for MongoDB ODM finally here!

Last few months we have been working hard on support for a new framework. It wasn’t an easy task, because MongoDB ODM has some specific features, for which we need to adjust graphic part of the application and also add quite a lot of logic inside. But we succeeded and new version 3.0.2 is now out!

New features for MongoDB ODM

New tools are available in application toolbar. They allows to create objects specific for MongoDB framework. It is Collection and Embedded.

Collection

Collection has its own visual element in a model for its simple identification. It is represented by rounded rectangle and it is connected with entities belonging to it with special dotted line.

If you want to add new entity to collection, you can add it in collection editor or you can use CollectionEntity tool from the application menu and click on chosen entity and collection.

Embedded

Embedded is a special type of association specific for MongoDB ODM framework. It has also its own visual representation, so in a model you can recognize it by double full line as displayed in the image.

Other changes in new version

Besides the MongoDB support contains also a lot of bugfixes and some small enhancements based on request of Skipper users. Here is the short summary of the most important changes:

  • Implementation of Universal objects (feature for expert usage)
  • New ORM properties for Doctrine 2 framework
  • Enhanced skipper configuration options
  • Fixes for occasional crashes of the application

Visit the version changelog and check all changes for V3.0.2.

05 Mar 2015

Change the way you see your model

One of the main strengths of former ORM Designer and now Skipper is the ability to display project visually in easy-to-orient and easy-to-read form. Although modules and regions help in this regards, with growing number of elements in the model it was sometimes challenging to know which association went where. And some people may prefer not to use the option to split the connectors of associations.

That’s why we added new feature aimed at improving the overall model clarity even further:

Colored entities

Entity Editor

Attentive spectators surely noticed new tab named “Appearance” in entity editor. Here you can change  header entity color, as well as background color. In case you will want to you can also change them back to predefined default colors.

From now you can customize your model so it might look for example like this one.

Colored associations</h4>

Association Editor

As well as you can change the colors of entities, you can also change the color of associations. You can find the option for changing of colors as a second item in General Settings.

So in larger model you can distinguish your associations so you can simply follow connections between entities.

Auto-coloring on import

Skipper_-Import_better

Coloring of the association might be useful also while importing existing project into Skipper.

To turn this option on just check the option to “Use colors for imported associations” in Import wizard. This will automatically color every association, so you can easily orient in your generated model and it saves you from the necessity to do it manually later.

11 Jul 2014

Posted by: Martin Kulhavy

Hints for developers Skipper #features

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

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

How to share modules among several ORM Designer projects

In this short tip I want to show you how to share modules (plugins) bewteen serveral ORM Designer projects.

Save module to shared location

As first step you can create or select any module you want to share among several projects and double click on it. As the next step select “Files and export” tab and enter a path to the shared directory to the “Data storage” edit window. In our example we store shared module in the location c:\sharedlocation\plugin.data.xml. The situation looks as in our first screenshot:

Import existing module

As the third step, open any project where you want to use this shared module. After that, select “Attach existing ORMD file to model” from “Import” menu.

Shared module in another model

In “open file” window select shared module data file. In our case we select file c:\sharedlocation\plugin.data.xml and click OK. After that shared module is attached to the model.

Conclusion

By using this technique you can share your models among several projects with minimal effort. Instead of repeatable creating of entities over and over again you can simply attach your shared modules to any project. And every change you create in the shared module will be automatically shared in all your models. This behavior can be used in any ORM framework (PHP Doctrine, Doctrine2, Propel or CakePHP).

17 Sep 2010

Posted by: Ludek Vodicka

Skipper tips #features #orm designer

Tip: How to setup associations in Doctrine2 project for correct export

In this tip I want to show you how to correctly setup associations in ORM Designer Doctrine2 project. Because Doctrine2 supports one-way or bidirectional associations, there is a need to tell ORM Designer how to export it. This is proceeded by Association alias. When you create association between two entities, you have to enter how you would like to access from one entity to another. Currently there are three ways how to do it:

Setup alias in association wizard

When you are creating a new association by using association wizard, you have to enter alias for direction you want to use. Below the alias edit boxes is a “Direction” item which shows you a type of created association.

Setup alias in association editor

Another option is to setup association alias in association editor (executed by “Edit object” menu item or simply double click on the association). In this window there are simmilar edit boxes as in the association wizard. Depending on values you entered into edit boxes the association is exported to your Doctrine2 schema files.

Enter alias using Property Editor

The third option how to setup association alias is in Property editor. Simply select the association you want to setup and in Property editor enter Owning alias or Property alias value.

Conclusion

I hope that this tip will help you to understand a way how ORM Designer proceeds associations export. Because Doctrine2 supports multi-direction associations, it is required this “Alias-enter” step. Please, leave us your comment about this feature if you have any opinion.

28 Aug 2010

Posted by: Ludek Vodicka

Skipper tips #features #doctrine #tips

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

How to start with Doctrine2 in ORM Designer

The simplest way how to start using ORM Designer with your current Doctrine2 model is to use an import doctrine2 model function. Currently is available only import from Doctrine2 XML schema files. If you have your model defined in anotation or using YAML files, please convert it to XML files. After that, follow next step-by-step instructions.

Import a new project from ORM

In a ribbon menu select Import New… and then Import Project from ORM.

In Import Project Wizard choose your project name and a root directory of your project where are your Doctrine2 XML files stored. As MVC framework choose Without Framework and as ORM choose Doctrine2 as shown on this screenshot.

After an import confirmation ORM Designer starts searching for your files and import them to new ORM Designer model.

In our example we import unit-testing model from Doctrine2 repository called CMS. When import procedure is over, you will see model like this.

After that you can start enjoying ORM Designer in your work with Doctrine2 model.

## More details about using ORM Designer with Doctrine2

Using of Doctrine2 in ORM Designer is very similar to using ORM Designer with PHP ORM Doctrine framework. For more information please look at ORM Designer and Doctrine framework page.

Supported Doctrine2 properties

Currently ORM Designer supports all properties from Doctrine2 except inheritance, which will be implemented during next months. All supported properties are based on official Doctrine2 XML schema. You can edit all properties simply by selecting the object and enter value to correspond field.

There are lot of properties which can be edited for every type. Here are screenshots of property editors for entity, field, association, many to many association.

Download ORM Designer with Doctrine2 support

If you want to download ORMD with Doctrine2 support, please download latest version from our site http://www.orm-designer.com/download-orm-designer. If you find any inconsistency or bug, please let us know.

Appendix: Supported Doctrine2 properties and behaviors

Supported Doctrine2 core properties

Object Property
Project Name, CodeName, Description
Module Name, Description
Entity Name, Description
Field Name, Type, Size, Required, Unique, Primary key, Auto increment, Default value, Enum values, Description
Association (1:m ) Name, Reference columns, Owning alias, Inverse Alias, Association type, Parent required
Index Name, Unique, Indexed columns
Many to Many associtaion M:N Entity, First and second entity, Alias to first and second entity

Supported Doctrine2 ORM properties

Object Property
Module namespace
Entity db table,schema,repository-class,inheritance-type,export-file-name,change-tracking-policy,lifecycle-callbacks
Field db column,version,scale,precision,column-definition,generator, generator strategy,sequence-generator,sequence-name,allocation-size,initial-value
Associtaion (1:m) on-delete,on-update,owning side/inverse side, fetch,orphan-repoval,cascade,order-by
Many to Many Association join-table-schema,fetch,on-delete,on-update,cascade,order-by
cascade-types cascade-all,cascade-persist,cascade-merge,cascade-remove,cascade-refresh

Appendix: Currently unsupported features for Doctrine2

ORM Designer currently doesn’t support inheritance in any level of designing (visual, editing, import, export). Iheritance for Doctrine2 and other ORM frameworks will be implemented in next few months.

Currently not supported XML tags from Doctrine2 schema:

  • discriminator-column
  • discriminator-mapping
  • discriminator-map
  • mapped-superclass
28 Jun 2010

Posted by: Ludek Vodicka

Skipper tips #features #doctrine

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

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