12.12.2020
7 min. read
Categories: Business News
New Release: Sylius v1.10 is here – PHP 8.0 all the way!

TL;DR

The 1.10 release is a big one from a technical perspective, due to upgrading Sylius to PHP 8.0. BUT if you’re a non-tech e-commerce specialist, we’ve marked business-related topics with special flags 🚩. So, for those with little to no time, here’s a summary of this release:

  • Sylius now officially supports PHP 8.0 which means even better performance and safety – visit this GitHub issue for more details & all updated dependencies!
  • AdminAPIBundle extracted to its very own repository – another step towards full headlessness 
  • ShopAPIPlugin features reproduced in Sylius Core – documentation pending, we’re on it!
  • Unified API unification – we’ve been ramming new code into the new API for 18 months, time to look back 
  • #Plus – lot’s of clients requested this feature, so now Sylius Plus offers split shipment with choosing inventory source
  • #Plus – feature coverage in API for Sylius Plus is growing!
  • #Plus – Sylius Plus with Sylius/Sylius v1.10 will be released shortly!
Kick off Sylius
As always with a release – key links below!

Intro after intro

Our last release of Sylius v1.9 in March ‘21 was all about the upgrade to Symfony 5, and recently we’ve been focusing on adding support for PHP 8.0. But not only that! Let’s see what Sylius has been up to in the past few months.

1/8 PHP 8 support!

We’re launching this release a bit earlier than planned (according to the adopted release cycle – Sep ‘21) because we did something huge – Sylius now supports PHP 8.0 (and 7.4 also of course)!

7 months after PHP 8 was released (26.11.2020) we’ve added support for PHP 8.0 in a stable release of Sylius/Sylius, although this support has already been released during the stabilization period in the alpha RC version in May (Kudos Shopware – you beat us by a few weeks!). Working on PHP8 support has been a smooth road that took us, as the whole Sylius community, about 4 months from start to finish line.

What’s in this for you from a developer perspective?

Let’s be honest…it’s all about new features, they’re cool and you’re cool if you use them. Not all of them have been utilized in Sylius yet, but still, you are now able to use them with PHP libraries, frameworks, or API. If you’d like to go through all the hot PHP 8 stuff – check their official blog – or stay with us and get to know which of the code novelties really tickled our belly: 

  • PHP attributes – we haven’t actually added any in Sylius, but you may use them with Doctrine, Symfony, or Api Platform configuration (big YAY!)
  • named arguments – may be useful in development;
  • union types – as above, sounds promising to be used in development;
  • constructor property promotion – neat! Awesome for Data Transfer Objects or Commands creation. We can’t wait to use it in Sylius itself! 
  • nice minor addons: throw expression; allowing ::class on objects; the nullsafe operator;
  • better string handling – it was always a pain point of PHP how strings were compared. Since 8.0 things are much better!
  • match functionality – a better version of the switch function
  • saner string to number comparisonsfinally 0 === ‘string’ -> false

🚩 And from a business perspective? 🚩

Fresh stack === attractive work environment

Oh, it’s always better to deal with a happy dev team, isn’t it? Nonetheless, working with the freshest stack can also be appealing from a recruitment perspective – it may be easier to hire new developers if you provide the most updated set of tools.  

Security FTW

An updated version means better security, and this can really save some cash in your pocket, but there is more to it – no LTS (Long Term Support) is generally cheaper and less risky for the platform’s architecture. It’s also becoming a trend in the community – an approach visible in PHPUnit, a strong Symfony recommendation during Keynote during SymfonyWorld Online 2021 (thanks Fabien Potencier!), and last but not least…the Sylius way of dealing with releases since we got stable in 2017. 

Be wary of your PHP versions lifespan

So, how does PHP approach new versions? There’s a new version every year with 2 years support. In this sense, the last PHP version ends the normal bug fixing period this year and will reach security fixes only, whereas v.7.4 will no longer be supported from Nov. 2021.

New version === better performance

We haven’t mentioned performance…yup, this is kinda bigger, but although expectations were high – especially with JIT compiler, the speed has not skyrocketed – don’t get us wrong, there’s no retrogression – PHP 8 with JIT is faster than its predecessor – it just hasn’t hit any hot marketing numbers yet. There’s a lot of space for improvement and we’re pretty much sure, it will come at some point.

Thinking about an efficient & flexible e-commerce platform?

2/8 AdminAPIBundle extracted to its own repository

We’re moving on with the new unified API development, this time by preparing the ground for switching off the old Admin API once the admin functionalities coverage in the new API reaches 100% (wait for it! and keep your fingers crossed as this operation is a tremendous effort on our dev team).

🚩 Business perspective 🚩 We’re unifying all of our APIs to one standard with API Platform – a renowned Symfony-based technology. All this to provide you with an e-commerce solution ready to go fully headless without any additional coding or adjustments.

3/8 ShopAPIPlugin features covered within the Unified API

We can now proudly announce that the functionalities covered by our previous API solution – ShopAPIPlugin – have been successfully reproduced in Sylius Core within the new API on API Platform. This coverage is the first step – now we will be working to provide a migration guide for the projects that have started their headless journey using Shop API plugin and would like to switch to the new standard, stay tuned!

🚩 Business perspective 🚩 Until now the Sylius projects that went headless have been successfully using our ShopApiPlugin for front office API development. As Sylius has proposed a new, stable, unified solution for its APIs, the old Shop API also needed a replacement. In this release you have all the API functionalities previously served by ShopApiPlugin covered in Sylius Core in the unified standard of the new API, and nothing has to be additionally installed anymore!

4/8 Unified API unification, huh…?

Do you know the feeling when you start doing something new? It feels exciting, doesn’t it? Usually, you don’t look back, you keep on coding and coding new functionalities like crazy. 

And then BAM! You realize it’s high time to tidy up the little mess you’ve made. That’s what we’ve been doing as well, yay. Slow down to speed up. So what’re we talking about here?

  • API Platform upgrade to v2.6, 
  • extensive validations added for API context (like for trying to use inexistent shipping methods, which is impossible from the UI perspective), 
  • serialization unification (too much or too little data in the response no more), 
  • documentation – it’s high time to describe the key concepts, write some customization tips and a few cookbooks. And of course, put it all alongside our existing docs.

🚩 Business perspective 🚩  We’re working hard to make the lives of developers easier. The API code provided by Sylius is now much neater and tidier, a lot smoother to customize and upgrade in the future. We’re doing our best to make your Sylius projects go smoothly.

Maybe you want to participate in creating the Sylius product roadmap?

5/8 Sylius/RefundPlugin (almost) stabilized!

We’re just one task away from it, and we’re planning to finally release the 1.0.0 of the Sylius/RefundPlugin version with support for Sylius 1.10 by mid-July. We thought you guys and gals should know!

6/8 #PLUS Ready to be released with Sylius 1.10 support in the coming days

As usual, within days after the Sylius new release, you may expect its support for the newly released version also within our commercial product. We are keeping support for the still maintained Sylius 1.9 and adding for Sylius 1.10. This will also let you upgrade to PHP 8.0 on projects with Sylius Plus!

7/8 #PLUS Features coverage in the new API is progressing

We’re getting close to 50% of the UI scenarios coverage in the API context using the new API Platform-based API. Now we’re focusing on

  • Inventory, 
  • Loyalty, and 
  • Customer Pools API.

8/8 #PLUS Choosing inventory source for a split shipment

Partial order fulfilment has received a tweak very awaited by Sylius Plus customers! When splitting a shipment of an order, one is now able to choose from which inventory source it will be sent. Very convenient during stock shortages in your warehouses you can send a part of an order for example from your physical store.

So if you’re in need of split shipment
or other enterprise-grade features

Contributors

We know this isn’t the most robust release and the modest list below sort of confirms it. It doesn’t change our gratitude towards all members of the community who contributed to this release – thank you all! 

Some of the maintainers and contributors of the packages Sylius relies on that moved us toward PHP 8.0 compatibility:

Help with API from:

Help with Docs from 

Sylius improvements from:

Demo

Try Sylius Standard or Sylius Plus yourself to experience what our platforms can do for your business & products. We can also connect with you and discuss whether it’s the right technological solution for your project – we know Sylius isn’t for everybody.

Download

Not yet into Sylius – go, download the bundles to get direct access to Sylius, read more about our support, or how you can become a Sylius developer with our video online course.

Next steps?

So at the moment, the roadmap of v.1.11 is in the works! But so that you have an idea of what we’re working on, here’s a glimpse of what our team is up to:

Standard requests we’re working on:

  • Developing our fresh API using API Platform standards

As you know we’re working on our APIs on top of API Platform, where this’ll provide you with a more smooth and pleasant experience when using Sylius for headless eCommerce. We keep on covering the next endpoints of Sylius shop and polishing up the existing ones.

  • Catalog promotions

Attract your customers to certain products while they’re browsing the product catalog! Offer products with a discounted price visible before an item is added to cart. Catalog promotions do not require cart coupons nor cart promotion rules. The feature will offer a rules engine as flexible as the one you know from the cart promotions.

Performance improvements that’ll make your e-commerce experience smoother:

  • Large amount of items in the cart – this’ll definitely be an important B2B improvement
  • Improvement for large product catalog performance & customer list handling

Phew, that’s it! Thanks for sticking around, see you at the next release!

Share:
Magdalena Sadowska
Magda is making decisions about Sylius features and breaking those into implementable tasks since 2017 in Product Owner role. Present on both our Github and Slack to chat about Sylius business-wise. Magda is closely attached to the organisation’s human area: Holacracy, team building, partnerships. Privately: she’s raising a very tiny human.
More from our blog
Business News Technical 7 min read 28.09.2020
Get ready for global sales & operations with the most advanced payment solution from the famous fintech giant, now available in Sylius out of the box. Read More
Business News 7 min read 14.09.2020
We proudly present to you the latest version of the Sylius eCommerce Platform – 1.8, which comes with a brand new, unified API powered by API Platform, Loyalty points system for Sylius Plus, and as you can probably see, a brand new sylius.com website! Numbers This new release is a… Read More
Business Ecosystem News 7 min read 13.08.2020
Read why the French market leader trusted Sylius in a strategic re-platforming process to get a competitive eCommerce advantage. Read More
Comments