如何在Shopware 6.5 App的Twig中获取Storefront版本?
获取Shopware Storefront版本的正确方法
为什么直接读取composer.json不可行
Shopware的App安全机制会限制文件系统访问权限,你尝试通过file_get_contents读取服务器上的composer.json会失败,这是预期的安全限制。
推荐方案:使用全局shopware变量
Shopware Storefront的版本和Shopware核心版本完全同步,因此可以直接通过全局shopware变量获取核心版本,以此判断Storefront版本:
{# 获取完整版本号,比如6.5.3.2 #} {% set full_version = shopware.version %} {# 提取主版本.次版本,比如6.5 #} {% set major_minor_version = full_version|split('.')|slice(0, 2)|join('.')|float %} {# 根据版本执行不同逻辑 #} {% if major_minor_version >= 6.5 %} <p>这是6.5及以上版本的代码片段</p> {% elseif major_minor_version >= 6.4 %} <p>这是6.4版本的代码片段</p> {% else %} <p>这是6.4以下版本的代码片段</p> {% endif %}
额外说明
- Shopware 6的核心、Storefront、Administration等组件版本始终保持一致,用核心版本判断完全可以覆盖你的需求。
- 如果你是在自定义插件而非App中开发,还可以通过注入
Shopware\Core\Framework\Adapter\Version\VersionAccessor服务获取版本,再传递到Twig模板中,但App环境下全局变量是最直接的方式。
内容的提问来源于stack exchange,提问作者Codixio
相关产品推荐
相关产品推荐

