After having published a first snapshot of the upcoming ZenMagick 0.9.14 it seems time to write about what is new and shiny in the next release.
Perhaps the biggest change is that zen-cart is now loaded on demand and ZenMagick is the main request handler.
What does that mean?
It means that for example, ZenMagick is responsible for session handling. It also means that no zen-cart code is loaded unless ZenMagick allows it.
Right now that *is* still happening, as there are still some missing bits in the ZenMagick request handling. However, we are nearing the point where this is no longer the case. At that point, zen-cart will only be loaded on demand, and only the bits relevant for checking out and ordering.
As a side effect of these refactorings, we have added a number of modified zen-cart core files into a bundle (the symfony plugin system), so file patches can be obsoleted. On the other hand it means that relying on zen-cart core file patches will not be that easily possible any more.
A second major milestone is the integration of yet more symfon2 components, as can be seen in the list below.
Other, biggish changes include:
- Full localisation support using gettext – po/mo files throughout all of ZenMagick; admin, storefront, themes and plugins
- Support for symfony2 routing; this task is not yet complete, but I expect to have almost full coverage of storefront urls via routing
- Simplified MVC components; again this is mostly compatible with symfony2, with the exception that controller classes always need to be declared using the full namespace (rather than a bundle name)
- The ZenMagick template system is now implemented as a symfony2 template engine. This was a precursor for allowing Twig as alternative template engine.
- Support for ZenMagick WISYWIG editor plugins in zen-cart admin pages
- Skelton for a separate ZenMagick installer application
- Separate main configuration file, independent of zen-cart’s configure.php
For a more complete list of all changes please check the roadmap for 0.9.14.