sonata-project/sonata-composer
Utilities to help manage Composer dependencies in Sonata projects, providing tooling and helpers around Composer configuration and package integration for the Sonata ecosystem. Suitable for automating dependency handling and simplifying setup across Sonata bundles.
Check Deprecation Notice
Since this package is archived and deprecated, verify if it’s still needed in your project. If alternatives like composer-plugin-api or modern Composer scripts (post-install-cmd, scripts) suffice, skip installation.
Legacy Project Compatibility
If your project explicitly depends on sonata-project/sonata-composer (e.g., for SonataAdmin’s legacy Composer hooks), install via:
composer require sonata-project/sonata-composer --dev
Note: This may conflict with newer Composer versions (>2.x).
First Use Case
SonataAdminBundle, this package historically handled:
autoload-dev for debug tools.composer.json scripts:
"scripts": {
"post-install-cmd": [
"php artisan sonata:install --no-interaction"
],
"post-update-cmd": [
"php artisan sonata:install --no-interaction"
]
}
Legacy SonataAdmin Integration
post-install-cmd to run Sonata’s CLI commands (e.g., sonata:install).post-install hooks in composer.json.Dynamic Autoloading
sonata/* to autoload-dev for debug classes.composer.json:
"autoload-dev": {
"psr-4": {
"Sonata\\": "vendor/sonata-project/*"
}
}
Plugin-Based Extensions
SonataComposerPlugin.ServiceProvider bootstrapping.bootstrap/app.php for service binding.sonata:install commands in config/packages/sonata_admin.yaml to use native Laravel commands.sonata/composer hooks with composer.json scripts.Composer 2.x Incompatibility
Your Composer version (2.x) does not support SonataComposerPlugin.
1.x (not recommended) or migrate to native scripts.Deprecated Methods
SonataComposerPlugin::getInstaller() are obsolete.Artisan::call() in composer.json scripts.Circular Dependencies
sonata-project/admin-bundle), it may cause conflicts.composer.json and use replace to avoid duplicates:
"replace": {
"sonata-project/sonata-composer": "*"
}
php artisan sonata:install --no-interaction --verbose
composer dump-autoload
php artisan cache:clear
Console/Kernel to hook into Composer events.sonata/composer to:
registerCommands() in AppServiceProvider.php artisan calls.sonata_admin is properly configured in config/packages/sonata_admin.yaml to avoid missing command errors.composer.json:
"conflict": {
"composer/composer": "2.0.0"
}
How can I help you explore Laravel packages today?