sympress / assets
WordPress asset management library with optional Symfony-kernel integration.
Requires
- php: ^8.5
- ext-dom: *
- ext-json: *
- symfony/filesystem: ^8.0
- symfony/finder: ^8.0
Requires (Dev)
- brain/monkey: ^2.6
- friendsofphp/php-cs-fixer: ^3.94
- johnpbloch/wordpress-core: >=7.0
- mikey179/vfsstream: ^1.6
- mockery/mockery: ^1.6
- php-stubs/wordpress-stubs: >=7.0@stable
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.2
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-mockery: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.13
- symfony/var-dumper: ^8.1
- sympress/kernel: @dev
- szepeviktor/phpstan-wordpress: ^2.0
Suggests
- sympress/kernel: Enables the optional Symfony-kernel bundle integration.
This package is not auto-updated.
Last update: 2026-06-08 21:39:06 UTC
README
Asset management for SymPress WordPress packages, plugins, and themes.
The package registers classic scripts, script modules, and styles through a Composer library. It can run standalone in WordPress or through the optional Symfony kernel integration.
Installation
composer require sympress/assets
Features
- Scripts, script modules, and styles with one shared asset API
- Webpack manifest, Encore, array, and PHP file loaders
- Automatic versions from file paths or dependency extraction files
- Native script loading strategies:
defer,async,blocking - Style preload for non-critical CSS
- Resource hints for
preload,preconnect, anddns-prefetch - Protection from cache, minify, combine, defer, and delay optimizations
- Optional Symfony kernel integration with asset providers
Example
<?php use SymPress\Assets\AssetManager; use SymPress\Assets\Script; use SymPress\Assets\Style; add_action( AssetManager::ACTION_SETUP, static function (AssetManager $assets): void { $assets->register( new Script('site', plugin_dir_url(__FILE__) . 'assets/site.js'), new Style('site', plugin_dir_url(__FILE__) . 'assets/site.css'), ); } );
Classic scripts use WordPress' native defer strategy by default. Styles remain
blocking unless Style::preload() is enabled for non-critical CSS.
Standalone WordPress
When the Symfony kernel is not used, load inc/bootstrap.php once after the
Composer autoloader.
License
This package is licensed under GPL-2.0-or-later.
It contains code derived from inpsyde/assets. See NOTICE.md for
details.