With the release of Shopware 6.7.6 in January 2026, full PHP 8.5 compatibility has been officially confirmed. PHP 8.5 brings, among other things, the pipe operator, clone() with changed property values, a URI extension and the NoDiscard attribute (php.net); property hooks and asymmetric visibility already arrived with PHP 8.4. What performance effect the switch has for your Shopware shop only shows in your own measurement. In this guide, you will learn how to plan the migration, which measuring points to record before and after, and what to watch out for with plugins. Also facing a version or platform switch? See our Shopware migration page.
PHP 8.5: Key New Features at a Glance
PHP 8.5 was released in November 2025. As of 1 September 2026, PHP ran on 70.2% of all websites whose server-side programming language is known (W3Techs). Besides new language features, the release changes operations: from PHP 8.5, the OPcache bytecode cache is built into the PHP binary and always loaded (PHP project). For e-commerce applications like Shopware, this means: the OPcache settings still matter, loading the extension is no longer needed.
Pipe Operator |>
Chain function calls as readable pipelines instead of nested function calls
Clone With
clone() takes new property values while copying – the with-er pattern for readonly classes gets simpler
URI Extension
Parse, normalize and modify addresses following the standards – built in, without an extra library
NoDiscard Attribute
Warns when the return value of a function is not used – overlooked mistakes surface earlier
array_first() and array_last()
Read the first or last value of an array directly; an empty array returns null
OPcache Built In
The bytecode cache is always part of the PHP binary and loaded; opcache.enable and opcache.enable_cli are still honored
Performance Benchmarks: PHP 8.5 vs. 8.3 vs. 8.1
The performance differences between PHP versions are noticeable for Shopware shops, but how large they turn out depends on the individual shop: the number of products and variants, the state of the plugins, the hardware and the caching setup. External benchmarks therefore indicate a direction, not a promise for your shop. Only a measurement on your own machine is dependable – recorded before the migration and repeated afterwards under identical conditions. The table below names the measurement points that have proven useful.
| Metric | Measured with | Before the migration | After the migration |
|---|---|---|---|
| Requests/s (product listing) | Load test with a fixed scenario | record a baseline per page type | same scenario, same load |
| TTFB homepage | Server response time in the field | baseline across a full week | compare the same time span |
| Memory per worker | PHP-FPM status page | note the peak under load | peak under load again |
| Checkout throughput | Load test up to order confirmation | baseline with real carts | same cart, same payment method |
| Import of large catalogs | Runtime of the import command | runtime of the same data set | same data set, same machine |
| OPcache warmup | OPcache statistics after a restart | time to a full hit rate | same measurement after the switch |
Compute-intensive operations such as product imports, price calculations, and OpenSearch indexing belong in the before-and-after measurement, not just page views. Shops with many product variants – especially multistore setups – should measure these runs per sales channel.
Higher throughput on product listings means in practice: your hosting server serves more concurrent visitors on the same hardware. That pushes back the point at which a more expensive server package becomes necessary, while simultaneously improving Core Web Vitals, which Google uses as a ranking factor. Whether PHP 8.5 delivers pages faster or uses less memory in your shop is shown by a comparison under the same load before and after the switch.
Shopware 6.7.6 and PHP 8.5 Compatibility
Shopware introduced official PHP 8.5 support with version 6.7.6 (January 2026). The release notes list PHP 8.2, 8.4 and 8.5 as tested versions (GitHub shopware/shopware). For shop operators, this means: the core of the shop system is ready – the challenge lies in plugins and custom code. The package base of the release is listed in its composer.json:
- Shopware core: Full PHP 8.5 compatibility from version 6.7.6
- Symfony 7.3: framework foundation of release 6.7.6
- Doctrine DBAL 4.3: database abstraction
- Twig 3: template engine
- PHPUnit 11: test framework of the core tests
Important to note: in the 6.6 line, Shopware only allows PHP 8.5 from 6.6.10.11 (January 2026) onwards; older 6.6 builds and the 6.5 line do not support PHP 8.5 (GitHub shopware/shopware). If your shop still runs on an older Shopware version, a Shopware update is required first before the PHP migration can proceed.
Migration Path: Step by Step to PHP 8.5
A successful PHP migration requires systematic planning. The following migration path has proven effective in practice and minimizes the risk of downtime. From analysis to production deployment, a well-prepared migration is usually a matter of several weeks; the plugin inventory and custom code determine the timeframe.
- Inventory: Document current PHP version, Shopware version, and all installed plugins
- Update Shopware: Ensure at least Shopware 6.7.6 is installed
- Compatibility analysis: Run PHPStan and Rector against the codebase to identify incompatibilities
- Plugin check: Verify all plugins for PHP 8.5 compatibility (details in the next section)
- Staging environment: Install PHP 8.5 on a test server and deploy the shop there
- Automated tests: Run the entire test suite on the staging environment
- Manual tests: Manually test checkout, payment processes, and critical business workflows
- Performance baseline: Measure and compare benchmarks on old and new versions
- Production migration: Activate PHP 8.5 on the live server, ideally outside peak hours
- Monitoring: Closely monitor error logs and performance metrics for the first 48 hours
If your shop still runs on PHP 8.1, we recommend the intermediate step via PHP 8.3. This allows deprecated functions to be replaced incrementally rather than handling all changes at once.
Common Pitfalls with Deprecated PHP Functions
PHP 8.5 deprecates several notations that may appear in older Shopware code and plugins (php.net). On top of that come legacy issues from earlier versions that surface together when jumping from 8.1 or 8.3: utf8_encode(), utf8_decode() and ${} interpolation have been deprecated since PHP 8.2, implicitly nullable parameters since PHP 8.4. The following overview shows examples for Shopware developers:
// PHP 8.5 DEPRECATED: backtick operator as an alias for shell_exec()
// Old:
$output = `ls -la`;
// New:
$output = shell_exec('ls -la');
// PHP 8.5 DEPRECATED: non-canonical cast names
// Old:
$active = (boolean) $value;
// New:
$active = (bool) $value;
// PHP 8.5 DEPRECATED: null as an array offset
// Old:
$label = $labels[null];
// New:
$label = $labels[''];
// since PHP 8.4 DEPRECATED: implicitly nullable parameters
// Old:
function setName(string $name = null) { }
// New:
function setName(?string $name = null) { }
// since PHP 8.2 DEPRECATED: utf8_encode() / utf8_decode()
// Old:
$encoded = utf8_encode($string);
// New:
$encoded = mb_convert_encoding($string, 'UTF-8', 'ISO-8859-1'); Implicitly nullable parameters ran without a notice up to PHP 8.3 and may therefore be found in older plugin code. Tools like Rector can automate part of these adjustments. For custom plugin development, we recommend a professional code review to identify subtle compatibility issues early on.
Checking and Ensuring Plugin Compatibility
Plugins are typically the most critical aspect of a PHP migration. While the Shopware core is officially tested, PHP 8.5 readiness among third-party plugins varies considerably. A systematic check is essential to prevent production issues.
- Composer check:
composer why-not php 8.5shows all packages with incompatible PHP constraints - PHPStan Level 8: Static analysis with
--php-version=80500reveals type errors and deprecated calls - Rector audit:
rector process --dry-runshows required code changes without executing them - Check plugin metadata: Look up the PHP requirement (
require.php) and the supported Shopware versions in each plugin'scomposer.json - Contact vendors: For business-critical plugins, ask vendors directly about their PHP 8.5 timeline
Whether an extension runs under PHP 8.5 is decided plugin by plugin and cannot be quantified across the board. Actively maintained extensions tend to follow soon after a PHP release; older and unmaintained ones often never do. For a plugin that does not follow, there are three options: wait for an update, adapt the code yourself, or replace the plugin with a compatible alternative. For custom-developed plugins, we handle the PHP 8.5 adaptation as part of the migration.
Server Configuration for High PHP 8.5 Performance
PHP 8.5 alone brings performance benefits, but the right server configuration makes the decisive difference. The following settings are optimized for Shopware 6 on PHP 8.5 and should be adjusted in the php.ini or pool configuration.
; OPcache configuration for PHP 8.5
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.jit=tracing
opcache.jit_buffer_size=256M
; Memory and limits
memory_limit=512M
max_execution_time=60
upload_max_filesize=32M
post_max_size=32M
; Realpath cache (important for Symfony)
realpath_cache_size=4096K
realpath_cache_ttl=600 For Shopware 6, we recommend the tracing JIT compiler mode. It analyzes the actual execution path and optimizes hot paths – ideal for complex e-commerce business logic. The function mode is better suited for CLI scripts like imports and cron jobs.
Beyond PHP configuration, web server setup also plays a role. Nginx with PHP-FPM and a dedicated worker pool for Shopware, combined with a CDN and HTTP/3, delivers good results.
Pipe Operator and clone() in Practice
PHP 8.5 introduces language features that can make plugin code shorter: the pipe operator makes nested function calls readable, and clone() takes changed property values while copying (php.net). Property hooks, which can replace getter and setter methods, have been available since PHP 8.4.
// new in PHP 8.5: pipe operator for readable pipelines
$result = $input
|> trim(...)
|> strtolower(...)
|> htmlspecialchars(...);
// new in PHP 8.5: clone() with changed properties
final readonly class Price {
public function __construct(
public int $amount,
public string $currency,
) {}
public function withAmount(int $amount): static {
return clone($this, ['amount' => $amount]);
}
}
// since PHP 8.4: property hooks replace getters/setters
class Product {
public string $name {
set(string $value) => trim($value);
}
} For Shopware plugins, these features can make code shorter and more readable. Asymmetric visibility (public private(set), since PHP 8.4) also allows API designs where properties can be read externally but only set internally – useful for entity classes in Shopware.
Impact on SEO and Core Web Vitals
PHP performance directly impacts search engine optimization. Since 2021, Google has evaluated Core Web Vitals as a ranking factor, where Largest Contentful Paint (LCP) and Time to First Byte (TTFB) are heavily influenced by server-side processing speed. A shorter TTFB moves the starting point for everything that loads afterwards – LCP only benefits from it if images and fonts do not slow things down in turn.
The effect on conversion has been measured: a mere 0.1 second faster mobile load time lifted retail conversions by 8.4% and average order value by 9.2% (Google/Deloitte). How much of that reaches your shop is something only your own measurement before and after the migration will show. The PHP 8.5 migration is therefore not just a technical upgrade but an investment in your e-commerce success.
Record a baseline before the migration: Lighthouse performance, TTFB and memory usage under load, per page type. Without that baseline you cannot tell afterwards what the switch delivered and what came from a caching setting changed along the way.
Migration Checklist for Shop Operators
The following checklist summarizes all steps to be carried out before, during, and after the PHP 8.5 migration. Use this list as the basis for your planning – or contact us to have us handle the migration professionally.
- Database, files, and configuration backup created
- Shopware updated to version 6.7.6 or higher
- All plugins checked for PHP 8.5 compatibility (composer why-not, PHPStan)
- Staging environment with PHP 8.5 set up and tested
- Deprecated functions in custom code replaced
- OPcache and JIT configuration optimized for PHP 8.5
- Checkout and payment processes manually tested on staging
- Performance benchmark measured before and after migration
- Rollback plan documented (PHP version can be switched back quickly)
- Error monitoring set up for the first 48 hours after go-live
This is what your electronics shop could look like:
Electronics Retailer
In the 6.7 line, official PHP 8.5 support requires at least Shopware 6.7.6, released in January 2026. In the 6.6 line, PHP 8.5 is allowed from 6.6.10.11 onwards; older 6.6 builds and the 6.5 line do not support PHP 8.5 and must be updated first. Contact us for an assessment of your update effort.
That cannot be quantified in general. How large the difference turns out depends on your shop configuration, product count, installed plugins and hardware. Only your own comparison is dependable: the same load, the same machine, once before and once after the switch.
Not automatically. Whether a plugin runs is decided plugin by plugin: actively maintained extensions usually follow soon after a PHP release, older ones often never do. We recommend performing a systematic compatibility check using Composer, PHPStan, and Rector before the migration and contacting vendors for critical plugins.
A well-prepared migration usually takes a few weeks – from analysis through staging to production deployment. Shops with many custom plugins or proprietary code tend to need more time for compatibility adjustments. The actual server switch itself can be completed within minutes.
A rollback to the previous PHP version is typically possible within minutes and requires no code changes. We recommend preparing a documented rollback plan and performing the migration outside peak business hours. For our hosting clients, we monitor the migration and can intervene if needed.
Smaller shops are no exception: whether the switch reduces memory use and load times – and with them hosting costs and SEO – is shown by your own measurement before and after the switch. Additionally, according to php.net, PHP 8.1 has not received security updates since 31 December 2025 – anyone still running it has to migrate regardless.
This article draws on php.net (PHP 8.5 release date), W3Techs (PHP usage share) and Google/Deloitte (effect of mobile load time on conversion and order value). The measurement points named in the text are instructions for your own measurement, not a promise: what a migration delivers for you depends on server configuration and shop setup and only shows in a before-and-after comparison on your own machine.