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

New review: ORM Designer is reliable, efficient and saves a lot of time

Hello everyone. Clément Tissier wrote a review about ORM Designer and we would like to give him our big thanks. Not everyone speaks French though, so we decided to publish it on our blog in English.

ORM Designer: Edit your entities visually in Doctrine (and others…)

Whether you develop your sites with the help of Symfony 2 and Zend frameworks or are using for example Doctrine or Propel as ORM tools, you will not want to do that without ORM Designer.

The interface of ORM Designer on MAC OS

Clement-review-macos-1024x746

ORM Designer (http://www.orm-designer.com/, €295) is a tool that allows you to visually manage various objects in your project and their relations. Even though it is great it generates your conceptual data model (CDM) or other relational database schemas, the following feature is where you will really appreciate the power of ORM Designer: it generates schema definition files for you.

I use it mainly for projects in Symfony2 and it saves me a lot of time. In fact, it is the end of the tedious step of writing these kind of lines for a property of your entity:

<?php
/**
\* @ORM\ManyToOne(targetEntity="PROJECT\CoreBundle\Entity\Company", inversedBy="user")
\* @ORM\JoinColumn(name="company_id", referencedColumnName="id", nullable=false)
\*/
private $company;

ORM Designer will generate the code for all your entities. Then you can simply run the usual order of the Symfony2 console to generate getters and setters, php console doctrine:generate:entities <MONENTITE> and to update the database. php console doctrine:schema:update --force

If you decide to add properties or relations, you can simply make the changes in the visual editor and update files via ORM Designer. It is reliable, efficient and saves a lot of time on your projects with many objects and relationships.

Of course, its high price 295 € (excluding tax) is intended to target mainly professionals who can use it frequently. Given the time it will save to them, it is in my opinion an investment to consider.

It is compatible with following PHP frameworks:

And with these ORM frameworks:

You can download a 14 day trial version here: http://www.orm-designer.com/download-orm-designer

And buy the full version here: https://secure.orm-designer.com/core/buy

For original review in French, head to Clément’s blog: http://blog.amelys-info.com/2014/02/orm-designer-editez-visuellement-vos-entites-doctrine/

03 Mar 2014

Posted by: Martin Kulhavy

Skipper reviews #review

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

Interesting resources for PHP, ORM and MVC programmers

We asked our developers, who to follow or what to monitor on social networks and where they find new tips and current topics in their field of interest. Based on their references we compiled a following** list of interesting people and accounts** of various PHP frameworks or debating communities for selected social networks:

Who to follow on Twitter

  • Zend Technologies – 26 000 followers The primary sponsor of the Zend Framework open source project for developing web applications and services using PHP
  • Andi Gutmans – 4 553 followers An Israeli PHP developer and co-founder of Zend Technologies
  • Symfony – 13 600 followers An Open Source distributed PHP framework
  • Fabien Potencier – 18 700 followers Symfony founder and project lead
  • Cakephp – 10 600 followers An open source web application framework which follows the Model-View-Controller (MVC) approach and is written in PHP
  • Larry E. Masters – 2212 followers CakePHP Founder/Lead Developer
  • James Watts – 204 followers CakePHP Core Member and Community Manager
  • Doctrine project – 1 403 fllowers An object-relational mapping (ORM) tool for PHP application development
  • Benjamin Eberlei – 2 890 followers Doctrine project lead and IT-Consultant for quality assurance and software architecture
  • Rasmus Lerdorf – 28 700 followers Famous for creating the PHP scripting language, authoring the first two versions of the language and participating in development of later versions

Interesting groups on LinkedIn

Where to talk on Facebook

Facebook is designed more for entertainment than professional discussion. However, there is one active group where you can discuss topics about your field of interest:

  • PHP – 18 720 members

Communities to join on Google+

Do you use social networks? Which ones? Do you miss someone or something in the list? Feel free to discuss it in comments.

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

(VIDEO) ORM Designer workflow

Our user Peter Schmalfeldt from company Manifest Interactive sent us an interesting video, which is showing his workflow on project for client with ORM Designer.

Manifest Interactive

He uses ORM Designer to export YML files and then reads them with his own application MICI which is based on CodeIgniter. He converts the YML into PHP via Doctrine in MICI. The PHP models are then used to create the database and tables.

What Peter finds interesting about ORM Designer is that he can set up file type and location for each module in his project. He also integrated ORM Designer in his framework, so his development team can preview visual model there and work with ORM definitions.

Peter appreciates ORM Designer because it is a huge timesaver for him and he uses it for every single project.

Thank you, Peter, for creating this great video and for your time.

And what about you? What is your work process? Where is ORM Designer involved in it?

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

Symfony2 Cheat Sheet

If you are a Symfony beginner or daily user the summary of most used tasks for this PHP framework will make your work easier. The Symfony2 Cheat Sheet is made by David Perez, who is experienced Symfony user and web developer from Spain.

He put together a sophisticated guide full of descriptions, sample codes and functions for most used principles in Symfony framework. Among other things there is in clear way explained controller, routing, templating, testing, validation, forms and security. But for us the most valued is a section about how to use ORM Designer with Doctrine project.

Symfony2 Cheat Sheet

This section guides Symfony users step-by-step through creating or** importing** of Doctrine project into ORM Designer. There is mentioned how to** manage basic objects** like entities, associations or properties.  You can also read how to export definitions to Doctrine, which comes in one pack with Symfony2 framework.

ORM Designer is described as a modelling tool allowing to start using Doctrine without deeper framework knowledge. In this Doctrine section is also highlighted comfortable way of work with the project and pointed out ability to continuously export the Doctrine definitions from the model.

Since we consider Symfony2 Cheat Sheet as very educational and useful project, we provided David with full ORM Designer lifetime license for free. Symfony2 Cheat Sheet is a nice summary and represents inclusion of ORM Designer in development process that is worth of pinning in a visible place.

Check it out on www.symfony2cheatsheet.com

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

Last year with ORM Designer

It is about one year since we launched ORM Designer 2. Article focusing on how we managed to improve it during that time will come out later. This one is more about important things we achieved as a company. Have a look at what we regard as the biggest milestones of the past twelve months.

## JIC (South Moravian Innovation Centre)

We have started to work with this Czech start-up accelerator. Initially, we came looking for investors, but what we did receive was so much more. JIC connected us. Thanks to our cooperation we have met many great people who are among the best in their field in our country. And they are excited to help us make our company better at what it does. So go JIC.

Angel investor

Our investor Michael Rostock-Poplar brought some additional funding into the ORM Designer team. But not only that, thanks to his extensive network of contacts he is able to recommend us to the people who are much more experienced in creating business solutions in our segment of work than we do and usually, those people gladly share their insight on how to do something with us. And good advice is hard to find.

Internship

One of the biggest problems for young people freshly out of school is absence of relevant work experience. And although universities are great for imparting theoretical knowledge, they put less emphasis on practice. Two young men who have decided to improve their coding skills as interns in our company were during the five months they spend here systematically trained in the ways of C++. Our mutual cooperation proved to be beneficial to all parties involved and we are glad we had them on board.

Bigger team, bigger office

Since our team is now almost double the size it was year ago, our current premises started to feel a bit small. And because the shop located right next to us was ending its activities we simply took up its space as well and were finally able to fit in comfortably.

The road ahead of us is still long and every important or interesting thing that happens in our company will sooner or later find its way to this blog. So check it out from time to time.

30 Jan 2014

Posted by: Martin Kulhavy

Behind the scenes #team

Magic behind ORM Designer

mac bright

Hi All,

Quite a lot of people asked us about how ORM Designer2 insides work. Some wanted to customize it, some were asking because they were curious about some future features. So I decided to give you exhausting inside look:

Historic background

We have first thought of ORM Designer as a tool to help us with our work at that time, web sites and e-commerce. I spent a lot of time thinking about how to deal with definitions in different formats. In those early days only Doctrine and Propel were in widespread use. So we only needed to work with YAML and XML, and the file structure was also quite simple: one module = one file.

First version was really rudimentary, compared with the latest ORM Designer2 version. Whole import/export logic was hard-coded in the application itself. But as ORM Designer grew in complexity, it became necessary to customize and expand import/export process. To deal with it, we have created our internal XML scripting language (in version 1.2). While still pretty basic, this internal language helped a lot in further expanding ORM Designer.

With the Doctrine2 we have met series of big challenges. Most notably need to import/export each entity as a separate file, and need for native support of annotations format. To implement these changes, we decided to rework the application completely.

ORM Designer 2 comes in January 2013. Application is completely redone using Qt framework. Now, ORM Designer not only becomes multi-platform, but the focus was also on the maximum modularity and possibility to expand and customize the whole application. With the new version comes also the support for the annotations format.

Dealing with different formats

As you know, ORM Designer 2 supports three different formats for the definition files: YAML, XML and PHP annotations. To process such different formats, all the files are at first transformed into XML. Its easy for XML files :). And its pretty straightforward for YAML. The PHP annotations require an extra parser which transforms the PHP file to the AST (abstract-syntax-tree), and this tree is subsequently transformed to the XML format.

XSLT transformations</h4>

Now, we have the input in the XML format, but the content of the file is still dependent on the original file format. These XML files are transformed using specific XSLT template and the result is the so called abstract-XML. This file contains all the information of the input file, but its structure is unified and format independent.

Last step is to transform the abstract-XML to ORM Designer project file. The project file is a regular XML file with additional information for the model layout. This file is loaded by ORM Designer, but can be as easily edited manually.

Export uses the same principles, only in the reversed order: from ORM Designer project file to abstract-XML, then to XML files that have the structure representing the final output format, and in the end the actual definition files are generated.

The XSLT processor used is the LibXslt library, but we have added several transformation functions of our own.

ORM Designer import process

ORM Designer import process

Scripting

Another crucial concept in ORM Designer is the scripting support. Because every ORM is different, different way of processing and different number of transformations is required. To accommodate this, we have implemented the JavaScript support together with a few script extensions.

This scripting allowed us to easily describe the transformation process in required detail for each ORM Framework individually. Its even possible for users to tweak and extend the import/export script as much as they want.

Scripting is used for import, export and directory lookup prior to the import. I have plans to expand ORM Designer functionality in the future. Users then should be able to write and launch their own scripts directly from the ORM Designer GUI.

Annotations

Annotation support is very different from the way XML/YAML files are processed. Annotation source files needs to be parsed into individual language elements. These elements are then organized in the AST (abstract syntax tree), which represents the information and logic stored in the code.

The AST is then further parsed and only the Classes, Attributes and their annotations are kept, the simplified syntax tree is created. Simplified syntax tree contains only ORM specific information. This simplified tree is finally transformed to the XML and further processed using XSLT transformations.

Because the annotations contain further information apart the ORM specific code, the export is even more complicated. The import process is reversed: from ORM Designer project file, through abstract XML to AST. But now comes one extra step.

Second AST is created from the target file and it is compared to the AST created by the export process. These two trees are then merged, so that only changed or newly added ORM annotations are modified. This ensures that no other part of the original file is modified or removed.

Few words at the end

I hope this article helped you to take a peek on the insides of your favorite software. If you are more interested in the inner workings of ORM Designer, tell me in the comments below.

Ludek Vodicka Chief developer

24 Jan 2014
Page: 3 of 9