Why does Innomatic is different from other PHP frameworks and what is it useful for?
2009/04/01

First of all: Innomatic is not (only) a PHP framework.

So you can’t directly compare Innomatic with frameworks such as Symfony, CakePHP, Zend Framework and so on, which are very good, first class PHP frameworks; nor Innomatic wants to compete with them. Instead, you can use and integrate your favourite framework with Innomatic, if the ones provided by Innomatic are not a good fit for your requirements.

A common PHP framework generally serves the purpose of speeding up a single Web site/application development, providing a structured files skeleton, standardized APIs, already available implementation of design patterns such as MVC, coding standards and so on.

This is true for a certain part of Innomatic too, but the latter is a new system of its own. You can think of Innomatic as a container of multiple, shared Web based applications made accessible to separated customer’s/organization’s profiles (called “Tenants”) within the same Innomatic installation, in particular administrative-type applications such as a CRM, Intranet, CMS, e-Commerce and so on, with a modular approach, e.g. you can enable certain applications to some Domains only.

For this purpose, Innomatic provides an applications desktop, authentication, localization, Web services interface, a security layer, a maintenance system, applications dependencies, applications upgrading and many more user ready features, greatly reducing the development overhead. This is like developing standard client applications using widgets (e.g. QT/GTK in Linux, Cocoa in Mac OS X, etc.), but in a Web environment (as you can see yourself in the Innomatic Demo).

However, just like a common framework, with Innomatic you are also able to develop a frontend for a public Web site, or other administrative-type applications with a system different from the standard Innomatic desktop. For each domain an optional so called “Web App” is created, handled by one or more Web App Handlers following a set of URL based mappings: a Innomatic Web App Handler is the feature most similar to a common Web sites PHP framework. In the MVC paradigm, the Web App Handler is the Front Controller, along with the Innomatic Web App Processor.

Innomatic natively provides some Web App Handlers (a static HTML server, a PHP based handler, a Xajax interface), that can be mixed in the same Web App, while other new ones are being made available as Innomatic based applications. You can also use an external PHP framework as a Web App Handler, and it is already planned to port some frameworks as native Innomatic Web App Handlers. The Innomatic desktop is a particular case of Web App Handler itself.

What is the ideal link between a Innomatic Domain and its own Web App? The Domain Desktop would be the backend (for example the CMS or e-Commerce application) of a Innomatic Web based solution, while the Web App would be the frontend part, with a new Web App Handler provided by the CMS.

What do you think about this new way of developing and consuming Web based PHP solutions? Was this post clear enough about explaining why Innomatic is a different sort of platform?

Please let we know in the Innomatic forum or in this post comments.