Emogrifier Scoped Dependency Build
This directory is the source of truth for rebuilding the scoped symfony/css-selector bundle used by:
app/Services/Libs/Emogrifier/scoped-vendor/symfony/css-selector
Why this exists
A direct vendor snapshot can drift to PHP-8-only packages. This build workspace pins a PHP-7.4-compatible dependency set and regenerates the scoped bundle deterministically.
Rebuild command
Run from repository root:
bash app/Services/Libs/Emogrifier/build/rebuild_scoped_css_selector.sh
The rebuild script will:
- Install locked dependencies from
build/composer.lock. - Copy
symfony/css-selectorintoscoped-vendor/symfony/css-selector. - Prefix namespaces to
FluentEmogrifier\\Vendor\\Symfony\\Component\\CssSelector. - Replace
str_contains()usage with a local compatibility helper. - Update scoped composer metadata (
installed.json,installed.php,platform_check.php).
Updating css-selector
- Edit
build/composer.jsonversion constraints. - Run:
composer update symfony/css-selector --working-dir app/Services/Libs/Emogrifier/build
bash app/Services/Libs/Emogrifier/build/rebuild_scoped_css_selector.sh
- Verify with PHP 7.4 and 8.x before release.