We have released a new version of Shopsys Framework — v8.0.0!
We have continued our work in the areas we defined a few months ago, so in this version, you can look forward to the basics of our backend API, increased frontend performance, and upgrades to the administration.
8.0 version wraps all changes that have been introduced in previous minor versions 7.1, 7.2 and 7.3 LTS, giving you all of the performance boosts and pricing upgrades that we introduced previously.
As this is a major release, you can expect some features to have difficulty with backward compatibility, however, there’s no need to worry since every change has been covered in our detailed upgrading instructions.
What is new in Shopsys Framework?
Introducing the Backend API
- Do you want to manage your products in ERP and transfer it to your e-commerce project? The API is the easiest way! Our goal is to create a clear backend API that will allow manipulation with entities from outside of the framework.
- In this version, we’ve included basic solutions to manage goods via API. It covers the whole CRUD, so it is possible to export all the products from the e-shop, import them into another e-shop, and modify or delete them using the REST API. See API Methods article in our docs.
- Not every project needs such functionality and we want to keep the framework lean, so the API is implemented as a standalone package and is not included in the default project-base. However, there is an automated script that makes the API installation super easy! See our Backend API Installation article for more information.
- This step will be followed in the future by adding API methods for manipulation of prices, orders, and other features.
20% performance boost and scalability for frontend product lists
- A few weeks earlier (in v7.3.0 release), we introduced a new layer in Shopsys Framework called read model that clearly separates the application model and view templates.
- You can see it in action on frontend product lists where the read model objects are used instead of Doctrine entities, and data for displaying the products are obtained from Elasticsearch.
- Now, to display a list of products on the frontend, you do not need a single call to the relational database (PostgreSQL).
- Thanks to this the load times of product lists and search results have decreased by 20%.
Administration facelift
- Overcoming the technical debt is also one of our priorities.
- Even though we, as developers, focus mainly on the framework’s internal operations and usage of up-to-date technologies, we understand that the user experience and a modern look of the application are equally important.
- The frontend is always heavily customized for every project, but the administration part usually remains untouched, so in the v8.0.0 release, we decided to give it a facelift!
Dashboard before:
Dashboard after:
Product detail before:
Product detail after:
Developer experience improvements
- The creation of new frontend pages is now easier thanks to the simplified registration of BreadcrumbGenerator (#1141) and FriendlyUrlDataProvider (#1140) classes.
- Extending the model layer is a bit easier as entities don’t depend on services anymore (#1123).
- All languages and collations are supported by default, thanks @henzigo for creating PR #1004.
- We’ve included Start Building Your Application article in our documentation that gathers the most important information that developers need when they start building a new project (#1201).
- Support for PHP 7.1 is dropped as this PHP version is not maintained anymore (#1066)
The boring code-related standards are checked and fixed automatically:
- All nullable parameters must be defined using the nullability (?) symbol (#1010).
- Visibility must be explicitly set for constants, methods, and properties (#1254).
- Formatting of type hinted return values (#1255)
- Consistent indentations in YAML files, thanks @sspooky for creating the tool and creating the PR #539.
- Strict typing is enforced in the project-base (#1256).
…for more see the full changelog of v8.0.0.
Čtěte také