Shopware 5 series: refactored core classes

SW-5_refactored-core-classes

Today’s blog post is meant to spark a twinkle in the eyes of the developers who work with Shopware on the daily. That’s because with the release of Shopware 5, we had the opportunity to refactor our core classes. That means thoroughly scrubbed and polished the main building blocks of our code in order to offer a more efficient software basis. Not only have we brought the classes up to their latest technological standards, but we have modernized the underlying architecture of the core. The aim was to create an architecture that brings the classes together under one namespace – the so-called Shopware Bundles.

Each bundle defines an object field in Shopware and incorporates the required classes. For frontend refactoring, Shopware 5 includes three bundles:

* StoreFrontBundle – central interface for defining data in the frontend
* SearchBundle – abstract product search for Shopware
* SearchBundleDBAL – DBAL implementation of the Search Bundles

Using this new bundle structure, we aim to make processes much easier to understand – therefore making development life easier when it comes to adding new features in Shopware.

Elasticsearch

Elasticsearch was not only high on the wish list of our Community, but also internally at Shopware. We absolutely wanted to integrate this feature into Shopware 5. With the StoreFrontBundle and the SearchBundle, it is now possible to integrate Elasticsearch with third party plugins.

We are currently working on an Elasticsearch implementation that focuses not only on performance optimization, but also on the architecture in order to allow other developers to easily take advantage of and extend the implementation. As of Shopware 5.1, Elasticsearch will be available with the Community Edition of Shopware, for absolutely no additional cost.

More on Elasticsearch

Upcoming shopping cart refactoring

Another theme of refactoring lies within the shopping cart process. The development of a refactoring concept is already running full speed. We have set the following objectives:

* Clear definition of a shopping cart process and the corresponding calculations
* The adaptation of defined interfaces for plugins to existing shopping cart calculations
* Connection for plugins, so that they can define and calculate their own basket items

Once again, here we do not only want to modernize the architecture, but also implement completely new features, laying the groundwork for a more robust system in the future.

Plugin system

The plugin system itself is also constantly evolving. One of the more important topics concern connecting a Dependency Injection Container (DIC), which allows plugin developers to change, overwrite or define their own services.

Another task in the future includes the optimization of existing plugin structures and methods. This makes it worlds easier to add changes to the file structure in Shopware.

Additionally, modernizing the plugin architecture makes it easier for developers to make their own adjustments to the core configuration.

Backend development & lightweight backend modules

In addition to optimizing the attribute extensions system, we are continually working to simplify backend development, therefore simplifying access. We now have project in motion that makes it possible for developers to write backend modules based on HTML as well as extensions from ExtJS.

Moreover, should developers not care to face the steep learning curve of ExtJS, Shopware 5.1 presents the option of building backend modules using vanilla HTML, CSS and JavaScript.

More on lightweight backend modules

 

Discover more from the Shopware 5 series:

The powerful & flexible filter function

The new Theme Manager

Read all that and more in our Shopware 5 brochure:

Download the free Shopware 5 brochure 

comments powered by Disqus