blogpost
Going Symfony: what's next in Innomatic Platform roadmap?
By Alex Pagnoni, 2014/12/22

As announced a few days ago, we released the new version 6.4 of Innomatic Platform, the latest in a long series of releases that depart from 1999. In particular, this is the eighth release of the latest generation 6.x started in October 2013.

The generation 6.x was particularly important because it represented the restart of the developments of the project after a few years off after the large refactoring of 2009, the birth of a new company dedicated to Innomatic Platform with the definition of a new commercial open source business model, the acquisition of paying customers with the new model and the launch of a new partnership program that has already received several adhesions.

Now that we have achieved these first important goals and that we got to version 6.4, what’s next?

Although these last two years have been a real reboot and relaunch of the project in larger scale, Innomatic Platform is not a startup and is not a technology in its infancy as it existed in various forms (Ampoliros, CarthagiConnect Platform) for more than fifteen years and is in use at many companies.

Like many other projects in PHP started long ago, Innomatic was an ecosystem isolated from others for a long time because there were no adequate standards of interoperability and open source code available in the form of libraries (e.g. on sites like phpClasses) was often low quality.

It is for this reason that since 2000 Innomatic has a database abstraction layer, since 2001 has its own system of dependencies and distribution of code and PHP applications, and so on: although Innomatic's goal has always been to build multi tenant applications and SaaS-oriented platforms, to overcome the above mentioned problems Innomatic provided its own internal framework, oriented to the type of needs that Innomatic wants to solve.

In recent years, however, some major changes as the massive adoption of Composer and the birth of the PHP Framework Interoperability Group standards as the PSR-0 have exponentially increased sharing between projects and the quality of open source code, becoming the de facto standard.

This also led to a clear separation, even in terms of perception, between old-style, badly written projects (which have often contributed to a low reputation of PHP) and high quality code: PHP has become much more interesting and mature in these recent years and very well written frameworks like Symfony, used by most of the best PHP programmers, have arisen.

All this has forced us to ask ourselves a very important question for the future of Innomatic: should we continue to develop our internal framework under Innomatic, strong of more than 15 years of development and experience, or should we rest on the shoulders of giants, embracing a wider community and build over it?

Although it is not easy to throw away a part of our work to which we believe a lot, we decided to take the second route, progressively migrating Innomatic's foundations towards a system based on Composer packages and Symfony components.

This is an incredible opportunity for our community, customers, partners and for ourselves:

  • We can learn from others outside our community;
  • Innomatic innovation will undergo a strong acceleration, as with the certainty of being able to rest on a framework evolving as Symfony instead of having to dedicate resources to the development of our framework we can focus in the advancement of our best technologies;
  • It will become easier than ever to develop over the thousands of platform agnostic projects, and Innomatic itself will be used by other projects;
  • Our customers who have critical projects could rely not only on the Innomatic Subscription but also on commercial Symfony support by SensioLabs;
  • The Innomatic Platform will be much more accessible to developers through the use of Symfony;
  • We may adopt code of best quality;
  • The entry barrier to Innomatic will be lower;
  • Much more.

For these reasons we have already started developing the new 7.x generation of Innomatic Platform, with the new project repository available on GitHub and an already working integration with Composer.

The version 7.0.0 in the pipeline will not have many new features but will be the basis for the development of new foundations: on the first hand we will start the development of the new features and migration of the old ones in the new platform distributed as Composer packages, from the other hand there will be a progressive integration of Symfony, discarding parts of the old framework for which there is a better component among those in Symfony.

In this process we will ensure total backward compatibility for standard applications that use Innomatic and for custom projects based on it, thanks to the inclusion of the legacy system inside the new platform and the use of the same database. The legacy code can access the new platform and vice versa, with a design inspired by eZ Publish, made by our friends at eZ Systems.

Since Innomatic is not composed of a set of "static" files and dependencies defined by a file written by developers (“composer.json”) but is a platform that change itself in run time with a growing system of components based on the packages installed and enabled to the various tenant by users and system administrators, even new style applications for the new platform will be based on Innomatic dependency system and packages distribution.

However, both legacy and new applications may define their dependencies to classes distributed via Composer (like Drupal Composer Manager) as well as define their own components and dependencies to other applications with the standard Innomatic system and will in turn be distributed as Composer packages.

The 7.x generation will be the bridge to the next 8.x generation to be launched once the migration from legacy stack to the new platform has been completed.