Magento – Wiki states that, “The Magento platform is a flexible open source e-commerce platform written in PHP. It enables merchants to set up and run online stores selling goods, electronic downloads, and services.”
Magento 2 is developed with the goal of empowering developers to effectively address the needs of merchants. The Magento team is working hard in building critical architectural changes to improve the performance, reduce the upgrade efforts, streamline the customization process, update the technology stack and improve the engagement with developer community.
Modern Technology Stack:
By using the modern technology stack, Magento 2 aims to provide an interesting set of features which includes, performance improvement, efficient development and latest security features.
|PHP||PHP 5.4 will be the minimum requirement with support available upto PHP 5.5||Improved performance and exception handling. For the complete list of new features refer to the following URL's
|MySQL||MySQL 5.6||Improved query performance, higher transactional throughput, memcached API' and better performance monitoring. For the complete list of new features, refer to: http://bit.ly/1ltpt0e|
|HTML and CSS||HTML5 and CSS3||Increased performance, improved layout design, high performance animations, responsive web design, SEO friendly features and much more. For the complete list of new features, refer to: http://bit.ly/1nchqmQ and http://bit.ly/UzVyKb|
|Coding Standard||PSR-0, 1||Implementation of PSR Coding Standard to make use of the standard development tools|
Streamlined Customization Process:
Magento has a large community of developers performing numerous customizations for their merchants. Also, there are many extensions available in the Magento market place. In Magento 2, the customization process is streamlined to achieve the following goals.
- Help the developers create more extensions.
- Make customization easier which allows a swift implementation.
- Remove duplicate code.
- Provide plug-in support.
- Streamline the coding the process.
The following are few key changes mentioned in Magento – Wiki
- Unlimited theme inheritance: New layouts can be easily created by overwriting the elements of an inherited theme.
- Reduce code coupling: ‘Mage’ God class doesn’t exist anymore. The ‘Mage’ God object is broken down into many smaller ones.
- Speed translation efforts: il8n localization dictionaries are streamlined without module-specific configuration.
- Better Error reporting for XML files: Implementation of XML configuration in the file schema validation.
Resolving Extension Conflicts
Magento market-place is getting bigger every day with more extensions made by the developer community. However, it also results in conflicts between extensions because of the complex coupling between classes, modules, and lack of distinction between business logic and framework. Magento 2 is focused on resolving these extension conflicts by declaring dependencies upfront, so that developers can resolve conflicts immediately. This process can reduce the integration time tremendously by instilling confidence on the performance of the customization.
Following are few key enhancements mentioned in Magento – Wiki
- Introduction of “plugin” feature: This feature allows the developers to customize core classes without rewriting the whole class. Hence, the customizations are more compatible with other extensions and less prone to errors during an upgrade.
- Enforced module dependencies: It allows the developers to explicitly declare the dependency modules for their extensions. Together with modularized code base, it can result in less complex dependency trees.
- Dependency Injection Framework: Declarative service layer that interface with dependency injection, helps in reducing the conflicts between extensions and in streamlining the enterprise integrations.
- Web API and web hook frameworks: Introduction of these frameworks will make the external business system integrations easier.
Improved Code Quality
One of the goals in Magento 2 is to provide “a great experience to developers”. Hence, there is a great deal of focus on the improved standards in code quality. The testing framework integrated with Magento 2 includes the following :
- Integration Testing(framework)
- Unit Testing
- Static Testing
- Performance Testing
- Legacy and Migration Testing
All these testing techniques enable integrations to achieve a larger success and helps merchants run their business much more effectively.
Reduction in Upgrade Efforts
Magento has increased its focus in making the upgrade easier for both Enterprise and Community Editions. With the availability of tools specific for upgradation, the process to upgrade from Magento 2.0 to 2.x and the upgrade from a Community Edition to an Enterprise Edition will be a lot easier.
Increased Utilization of Object Oriented Programming and Framework
There is higher focus on reducing dependency, limiting responsibility and increasing unit testing capabilities between the modules. Hence, the utilization of Object Oriented Programming concepts and framework can be incremented. This is achieved by employing the dependency injection principle and interfaces.
By breaking down the responsibility, the complexity of many classes has been decreased. There is less code coupling with clear and organized dependencies. This facilitates the developer to use compositions or aggregations to delegate responsibilities.
Framework Vs. Application
As per magentocommerce, “in Magento 1 all the modules & extensions are dependent on ‘Mage_Core’ for the core logic. There is also an inter-dependency between modules, extension and libraries. Extensions are represented as synonyms to modules, because usually extension is a module”.
As per magentocommerce, “in Magento 2, there is a clear distinction between framework and application. Application is the code which is designed for the user and carries business logic. The framework, is the code that is intended to run the system itself, it is not specific to a domain, it imposes system architecture”. Therefore, modules are components of the application and libraries are components of the framework.
The following are the objectives of this architecture:
- Separation of framework logic from application.
- Remove the dependency of the “Core” module from other modules and extensions.
- Reduce the number of dependencies between the modules.
- Gradually reduce coupling between components to the point where a cluster of modules can be represented as an independent feature.
The following are the advantages of this architecture:
- Ability to disable a feature without affecting the consistency of other features.
- Replacing the feature implementation. Consequently, it is possible to integrate a 3rd party module/feature.
Improving Engagement with Community
Magento 2 continues to maintain its commitment to open source. The community is invited to download, review and provide feedback on Magento 2 through the Magento 2 Github.
Magento 2 Release Roadmap
|December: Developer Beta||March: Dec RC|
June: Merchant Beta (likely timeline)
November: Merchant GA (likely timeline)
|Ongoing releases for 2.x|
DCKAP’s Magento Capabilities:
DCKAP’s developers are continuously acquiring information regarding the latest Magento 2 updates. As a contribution to the Magento open source community, we downloaded the code from Magento 2 Github so that we could review, test, and provide a feedback on the developments. So far we have been very impressed and we are looking forward to the release of the beta version in December 2014.
DCKAP has extensive experience in the development, customization & implementation of both Magento Community and Enterprise Editions. We have experienced developers whose primary focus is performance and customer satisfaction. We have performed Magento e-commerce website development, maintenance and performance tuning to key e-commerce websites (featured on Magento.com) and kept them on top of their sales performance capabilities.
Please read our case studies to know more about our work.