Just want to share with you guys what I learned about Magento 2.0 during Meet Magento Belarus that was in Minsk on June 21st. I really liked Dmitriy’s presentation, he revealed a lot of new interesting insights about the Magento 2.0 future and confirmed that Magento Inc. is oriented on improving their product not only from UI but also from development side as well. So what are the major highlights?
Magento 2.0 is not the same as Magento 1.x
As we all expected before it is not writing a new Magento version from scratch, but that doesn’t mean system will be the same in structure. They are going to perform a very deep re-factoring on it, and they already did a lot improvements in the system architecture.
Component Oriented Modules
This is one of my favorite changes that will be in new version. So what the component is for Magento 2.0? It is a set of modules that has high code coupling between each other. So you will be able to disable some components and/or replace it with your own implementation. For organizing relations between components there will be interfaces created that should be implemented in your component.
So you will be able to disable sales, checkout, customer components and can use only catalog. Or even disable catalog and use Magento as CMS… You will be able to write your own catalog implementation if you don’t need all the complexity of core one, but it will not affect other components functionality.
I really like this improvement, cant wait for seeing it in action…
Good Bye Class Alias
There will be no class alias in 2.0, all the objects will be created via createObject() factory by passing full class name. No more definitions of class aliases in configuration.
View Modularity
Someone likes it, someone not, but it is great improvement in organization of the module structure. Now your default layouts/templates/images/css/js will be in your module. There will be no base design package directory any more, all in one place app/code/[pool]/Namespace/Module/view. I suppose there will be no need to define your layout file in configuration anymore. Just create it and it works!
As for custom themes there also were added additional restrictions. All the custom themes that are created will have directories with views per module. So if you want to replace some template, layout you need to create directory with the same name as module name (Namespace_Module not Namespace/Module) and place overridden file there.
For me it seems more consistent from backend developer’s point of view, but for theme developers it will be a bit tough to change the way of customization. Anyway there will be a documentation for it, so it is not a big deal.
Infinite Themes Inheritance
One more cool feature for Magento, you will be able to create custom fallbacks for themes depending on any holiday, browser, store, etc… So you may create more clear theme structure for your customers, finally you will get rid of copy-pasted data.
Can not wait for it? It is possible in current Magento version as well, you just need to perform a small customization to core/design_package model, override _fallback method and call parent with additional $fallbackScheme rules.
ORM
They are planning to support more than one database engine so all the resource model level logic will be re-factored. It will be a separate service level, so maybe in future they will just switch to Doctrine ORM… Maybe in Magento 3.0 :)
Good Bye EAV?
It is not their final decision, but they have plans to replace EAV with more simple key/value implementation for RDBMS and you will have an option to select NoSQL adapter instead of RDBMS. I really appreciate this change, if they finally decide to make it in such a way, because EAV is just adding complexity and performance issues.
Integration Tests
They are writing integration test (non-isolated) that covers legacy functionality in core. Currently they have about 47% code coverage for Mage_Catalog and 53% for Mage_Core.
That’s great news, because it is important to have some proof that the core code will work after re-factoring. Of course it would be better to use TDD practices in core, but I suppose they can implement them only after covering existing functionality.
Different Directory Structure
Now there will be only 5 directories in Magento root instead of current 9. All the publicity available files will be placed in “pub” directory, instead of current “media”, “js”, “skin”, “error”. So you will be able easily place your Magento application files outside of webserver document root. In “pub” will be placed “jslib” (instead of “js” in root), “error” (error reporting), “media” (uploaded media files), “skins” (theme related public files).
Magento Contributions
Now there will be more clear process of involving community into developing Magento 2.0. We will be able to see all the process in their public Jira and develop for core if we want.
For instance I signed MCA agreement quite a long time ago and would like to take a part in developing 2.0 features. Hope their Jira and SVN repo will be available soon.
You can also refer to Dmitriy’s slides for something that I haven’t mentioned here (some text in Russian, but mostly English):
http://www.meet-magento.by/fileadmin/user_upload/meet-magento.belarus/Magento_2_By_SorokaDmitry.pdf
10 Responses to “Magento 2.0 — What we are waiting for…”
Trackbacks/Pingbacks
- Links 27/2011: Magento, Google Plus, NoSQL und HTML5 | Matthias Zeis - [...] noch nicht gekommen.Magento 2.0: Ivan Chepurnyi war bei Meet Magento Belarus und hat im Anschluss Informationen über Magento 2.0 ...
- Magento 2.0 – в ожидании | CMS обзор - [...] Magento 2.0 — What we are waiting for… [...]










Great post
That should be great to have a look for Zend 2.0 or Symfony 2.0 components like:
DIC (dependency injection): Have a lot of modularity (not only on view).
Form components: Because form system in magento 1 SUXX !!!
Unset the view from the model … (mvc)
Having cache system more extendable.
Debug bar which show how many request we call, how many memory, how many time … (may they not set this on magento 1 to not scare the user).
Magento is the best php e-commerce solution but they are a lot of things to change …
(sry for my english :p)
@CpnForTehwin By the way, seems Magento 2.0 will not use ZF 2.0, because there is no stable release, and I am not sure it will be released soon.
A very interesting read. Hell, if this is fully implemented in the open version of Magento 2 it will be a game changer again. Just think about the possibilies of Magento as a framework for transaction based websites in general, new commerce models and so on. I know this is also possible today, but it reads this will make things more easy and so faster to realise.
@Stefan All the points are related to community edition, enterprise always was just an extended functionality, but core modules are the same.
What about including a complete documentation about how this thing works??? They’re really lacking this “feature”…
@Jose, Dmitry told it is one of functionality acceptance criteria in Magento 2.0
Thanks a lot for sharing. I really want to know more about this Magento 2.0 before it has been launched and this article is very useful as well as gives some insights about Magento 2.0.
By the way i would like to know whether if i develop a Magento extension which is compatible with the latest stable version of Magento. Will i need to modify many things if i want to make it work in Magento 2.0 ?
Many thanks once again and would like to know much more from you about this strategically important Magento release.
Are they going to use some Symfony2 components? I hate to see every time frameworks reinventing the wheel for doing the same thing over and over…
It would be wonderful if the PHP world started to use components like the ones created by Symfony :D
I want to throw away protype,and use jquery.
I would love to see improvements on javascript. There are a lot of inline scripts blocking page rendering. Also this makes the customization a little bit harder. Most of them are small scripts doing little things, but there are a lot of them everywhere. You can’t (as a technique to improve performance, for example) put the js scripts to the bottom of the page because the scripts before the js on the bottom will stop working.
They could also move to jquery instead of prototype as the first one is widely used by a lot of CMS and it has a lot more of plugins available.
Another issue I think needs improvement is theming. I know magento is pretty flexible, but also very complex. There are a lot of template files, with a lot of variables inside them and with a lot of CSS rules styling each element. The css files are huge for a basic theme. A cleaner base (or starter) theme would be desired.
I’m not a Magento senior dev, just made a couple of ecommerce sites, but enough to see where can Magento be improved.