Hi there 👋

Hey, My name is Soner Sayakci. I work at shopware AG as Developer in the core so my blog contains mostly Shopware related stuff. In my free time I contribute to a lot of projects like Opensearch, FriendsOfShopware. You can find my Salary Transparency here.

Building PHP docker images in a better way with Wolfi-OS

⚠️ DEPRECATED: DO NOT USE THIS APPROACH ANYMORE This blog post contains outdated information. Chainguard has significantly reduced its commitment to open source, and the wolfiphp approach described here is no longer recommended for production use. See the wolfiphp announcement for more details. Alternative: Use Debian’s official packages with apt-get install php8.4-cli and related packages. While images may be larger, Debian provides stable, openly maintained PHP packages without dependency on corporate-controlled initiatives. ...

April 6, 2024 · 8 min · Shyim

Building your Shopware project in the CI using shopware-cli

In this short blog post, I will show you how you can use shopware-cli to build your Shopware project and deploy it later with Deployer, Docker image whatever you want. But first what is Shopware-CLI? Shopware-CLI is a command line application written in Go. It’s not the same application as bin/console in your Project. It’s kinda a Swiss knife for the Shopware ecosystem. Likewise, it can do a lot of things like: ...

August 21, 2023 · 4 min · Shyim

Devenv: Compose a Developer Environment easily for PHP with Nix

I have been using Nix for almost four years and also maintaining some packages at nixpkgs (the primary Nix repository). The Nix learning curve is complicated, so I could not get my colleagues into it. But Devenv made it so easy to compose a developer environment, so I got their attraction, and some of them switched already, and we are looking to where we can use it too. What is Devenv? Devenv allows you to describe in the Nix language how your project setup has to look like for any Unix-based systems (WSL2, Mac, Linux) for amd64/arm64 architectures. As you may know, no project has the same dependencies: one needs NodeJS 16, and the other NodeJS 18 already. For those reasons, there are already solutions like NVM(node version manager) where you can pin the version using a .nvmrc file. This works, of course, only for Node, and there are similar tools for any language and devenv allows you here to pin any package and with services. ...

December 25, 2022 · 9 min · Shyim

How to build your Shopware extension assets much faster

When you deliver your Shopware extension to a Shop owner, your extension must contain in src/Resources/public the build assets for the Administration and the Storefront. We committed in the first plugins in Frosh all assets directly in Git. But this led to annoying conflicts, or when you merged two pull requests at once, it didn’t contain both changes. So, for this reason, we removed the build files from all Git repositories again and used shopware-cli to build the files. ...

December 15, 2022 · 6 min · Shyim

Easy and Cheap Shopware App Hosting using Cloudflare Workers

Shopware Apps are a different way to extend Shopware and can use an optional external App Server to provide additional functionality from your external backend. In this Blog post, I want to show you that a Shopware App with a Backend can be easy and also very affordable. The scary backend server Before the App system, the only way to extend Shopware was to build a plugin. Plugins are like Symfony Bundles with Shopware magic to offer them in Shopware Store. So we wrote code that runs directly in the customer’s web shop, and we can create additional tables to store our information. But we have to make sure that our code works on many setups and PHP versions. As the plugins can do like anything and this makes sandboxing difficult or build reliable that they don’t break each other. That was when the Shopware app system was born to offer a different extension concept. ...

November 27, 2022 · 6 min · Shyim

Two weeks after using Gitpod only for development

I am working together with pumpi on a project named shopmon (will be announced when it’s done) and he is lazy to set up a local development environment, and I was lazy to show him that. So I gave him an instance of VS Code running on Web on my personal VPS. Everything was fine until I broke somehow IPv6 networking with Docker containers (I really hate networking), so we looked for an alternative. ...

October 17, 2022 · 8 min · Shyim

How we do nightly automated load tests at Shopware

With the Shopware version 6.4.11.0, we improved the performance overall a lot. To make sure that we still improve, we decided to set up a nightly load testing job to ensure that the application performance stays the same. So we have running since a month an automated load test for Shopware 6 running, and in this post, I want to speak about it. To test the Shopware, we use multiple dedicated Cloud Servers from Hetzner Cloud and wrote some custom tooling around Ansible to spawn the servers before. ...

May 26, 2022 · 6 min · Shyim

Shopware Rector Project

Last week I attended the first Hockethon (combination of Hackathon + Hockenheim) of the Kellerkinder. That event was unique, and I want to thank Kellerkinder for organizing such an event. If you are interested in what we all did on that event, check out the blog post from Marco I teamed up with Manuel we made pretty fast progress to enable HTTP caching in the store-API. As the Storefront already has HTTP caching, we used the same logic. But in the end, we had a reference in the Core store-API to the HTTP cache of the storefront bundle. So to do it right, we had to extract the HTTP cache logic of Storefront into the core component. While migrating code between two components, we thought this task is so brain-dead, so let’s use Rector to do this for us. ...

May 17, 2022 · 4 min · Shyim

A deep dive into Shopware 6 Caching

In this blog post, I want to dive into the Shopware Caching to clarify how it works and what you have to care about while developing features. We will go from the inner to the outer caching layer in multiple steps and look into them independently. Stage one - the object cache First, we will start with the object cache implemented in serval “route” classes. The “route” classes/controllers are always used in the Shopware context as an entry point for the store-API. These are controllers and services simultaneously, so the default storefront and the store-API can share the same code. ...

May 2, 2022 · 8 min · Shyim

Easy and fast local Shopware 6 Development on Mac with Symfony CLI

I switched a month ago to macOS as of the M1 hype and wanted to try out the entire Apple ecosystem when I have an iPhone, iPad, and Mac. To get Shopware 6 running, I looked into some Guides for Mac and found out for myself: Why is this all so complicated, and why the hell is anyone using Docker for that. Docker on Mac I saw that many people are using Dockware for their Setup. (Dockware is a Docker image with all the Tools/Servers included to run Shopware 6). Docker runs not native on macOS and uses a Virtual machine to emulate a Linux kernel and all the containers below it. So obviously, the filesystem would be slow, and many people using, for this reason, SFTP or other tools like docker-sync to hold the same state between host and container. This is one of the most significant disadvantages for me. Like me, the dumb user has to run a tool to have this synchronized. I know that tools like PhpStorm can do this for me automatically, but when it doesn’t work, I will waste so much time to find this out. ...

February 27, 2022 · 3 min · Shyim