Many developers building web applications accessing databases can’t imagine their work without using ORM framework, but as much as the ORM frameworks ease the development and make the code easier to read they can also take lots of time setting up. Some of the best ORM frameworks in PHP are Doctrine, Propel and CakePHP. All these frameworks are based around database and ORM definitions written by the developer. This gives the developer more freedom to optimize how the ORM framework works with the database but it also means yet another code to maintain. ORM Designer is a new software which helps developers with the tasks related to creating and maintaining ORM definitions.
If you see ORM Designer for the first time, you might think it’s another ERD modelling tool. Once you have a second look you’ll realize there is much more to the ORM Designer and ERD modelling is just on of many tools which haven’t been seen in any other software before and which makes ORM Designer unique. Let’s have a look what does ORM Designer offer beside visual modelling. One of the core features is sophisticated import/export features from and into ORM frameworks, MySQL Workbench or fabForce DBDesigner. This is very helpful when using ORM Designer on existing project. Currently supported ORM frameworks are Doctrine, Doctrine 2, Propel and CakePHP but more should come in near future. Authors promise to support any ORM framework which could provide cooperation when implementing ORM definitions.
Most use of ORM Designer would get developers daily working with ORM frameworks. ORM Designer covers full life cycle of the web application and it’s recommended to use it also during application maintenance as well. It’s so much easier to open the visual model and make changes directly in the model then opening the PHP or YAML definitions and writing it there. What is also great is that you have perfect documentation of the project model and this documentation is always up to date.
I’ve tried importing some of my models and it worked as promised and also arranged the model into colored regions. Just in a few clicks and mouse drags I had great overview of my models. The automatic arrangement worked fine even on large models with hundred tables. ORM Designer supports application modules or plugins and the model can be split into multiple files. This is a killer feature when you use some part of the application in multiple projects because you get documentation with the code as well.
Why use ORM Designer
The biggest advantage ORM Designer comes with is that you can actually see your application model. Not only it displays entities and associations, but you get also regions and modules. Regions can have different background so it’s easier to spot related entities. For example you create region for entities storing shopping cart and different region for entities related to system users. Even large model are this way easy to navigate.
Simple import/export into XML/YML/PHP
ORM frameworks are really fully supported, you can edit every ORM property you could think of. ORM Designer has internal definitions of each ORM framework so it shows you only features supported by the framework. For example in Doctrine project you can add behaviors, but not in CakePHP project where you can on the other hand add field validators.
This is really great because it’s much more friendly to new developers but it’s also helpful for skilled developers as they don’t need to search documentation all the time. ORM Designer also validates the values you can put into ORM property and gives you combo boxes of allowed values, entity field combo box or entities combo box where needed. Also advanced ORM features are supported and you’ll find tool for many-to-many association or inheritance.
As I wrote before, you can split the model into multiple files and use parts of the model in another project. This is really great as you don’t need to rearrange entities all the time and you have regions and notes you’ve defined before. ORM Designer uses XML files as the data store and it’s easy to track changes of these files using version control.
You can import existing model from Doctrine, Doctrine 2 and Propel frameworks. You can export model into previously listed frameworks and also into CakePHP framework. Unfortunately you can’t import from CakePHP project. Authors promise to provide database import soon which help with importing CakePHP models. You can also import model from fabForce DbDesigner and MySQL Workbench.
There are several small improvements that you won’t notice at first but once you start using ORM Designer you’d appreciate them. To list a few I’ve found so far. By right-clicking on any entity you can copy a list of all fields of this entity. When searching for entity, field or association you can use full-text search (ALT+SHIFT+O).
Another usefull addition you can know from IDE is a project tree on the left side of the window. Project tree is also fully searchable. What I really liked was optional grid which helps you arrange model. ORM Designer supports external tools so you can run a script with variables passed from ORM Designer. Project model can be saved as a graphic in PNG/JPG/BMP or PDF so you can easily show it to the client without the need to install ORM Designer.
Supported operating systems
ORM Designer is a Windows native application. You can use Wine to run ORM Designer under Linux or MacOS. You can find how to article on the ORM Designer website (http://www.orm-designer.com/). It’s not a great solution and I don’t like having to run wine, but it works well and seems to be stable enough.
Price and support
ORM Designer is offered on a per license basis. For 99 EUR you get a life-time license and you can download software updates for next 12 months. After 12 months you can use ORM Designer limitations, but you don’t get updates with new features. If you need to upgrade to the latest version you can order upgrade license for a lower price (1year of updates is for around 30% of the full license price).
ORM Designer can be downloaded as a trial version for 14 days. With ORM Designer you get also support through emails and forum, where all questions seems to be answered in a short time and with adequate answers. Most of the features required by the users are already implemented in current version of ORM Designer.
ORM Designer is a great tool which has proven to me it’s worth the money. It saved me time and also nerves because it had found invalid Doctrine relationship definitions. You can also see the authors care about the software and had spend hours tuning the user interface. Using ORM Designer I felt PHP development has made a great step. PHP developers have gotten mature unit-testing frameworks, ORM frameworks and MVC frameworks. Software like ORM Designer helps us using the tools more comfortable and makes developing much more fun then ever before.
ORM Designer website at http://www.orm-designer.com/