hryvinskyi/magento2-store-matcher
最新稳定版本:1.0.0
Composer 安装命令:
composer require hryvinskyi/magento2-store-matcher
包简介
Automatic store/website code matcher for multi-store Magento 2 setup based on HTTP_HOST
README 文档
README
Automatic store/website code matcher for multi-store Magento 2 / Adobe Commerce setups based on HTTP_HOST.
Overview
This Composer package automatically sets the correct Magento store or website code based on the incoming HTTP_HOST header,
eliminating the need to manually configure store matching in pub/index.php.
Features
- Zero configuration - Works automatically after installation
- Performance optimized - Stores/Websites can be cached by opcache (static array in app/etc/store-hosts.php)
- Local overrides - Support for environment-specific configuration
- Composer autoload - Uses standard Composer autoload mechanism
Installation
- Run the following Composer command in your Magento 2 / Adobe Commerce project root:
composer require hryvinskyi/magento2-store-matcher
The post-install script will automatically create app/etc/store-hosts.php and app/etc/store-hosts.local.php if they don't exist.
Configuration
Main Configuration
Edit app/etc/store-hosts.php to define your store and website host mappings:
return [ 'store' => [ 'default' => ['www.example.com', 'example.com'], 'french' => ['fr.example.com', 'french.example.com'], 'german' => ['de.example.com', 'german.example.com'], // ... more stores ], 'website' => [ 'base' => ['www.example.com'], 'europe' => ['eu.example.com'], // ... more websites ], ];
Local Overrides
For environment-specific configuration, create app/etc/store-hosts.local.php:
return [ 'store' => [ 'default' => ['test.example.test', 'localhost'], 'en_store' => ['en.example.test'], ], ];
This file will be automatically merged with the main configuration and can be gitignored.
How It Works
- Composer's autoload mechanism loads
src/autoload.phpon every request - The autoload file checks if running in web context (not CLI)
- It calls
StoreMatcher::match()which contains all the matching logic - The matcher loads configuration from
app/etc/store-hosts.php - It modifies
$_SERVERwithPARAM_RUN_TYPEandPARAM_RUN_CODE - Magento bootstrap uses these values to determine the store/website
Requirements
- PHP >= 8.1
- Magento 2.4+
License
MIT
Author
Volodymyr Hryvinskyi volodymyr@hryvinskyi.com
统计信息
- 总下载量: 21
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-19