Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Flex Laravel Package

symfony/flex

Symfony Flex streamlines Symfony app setup by automatically enabling bundles, configuring recipes, and managing Composer packages. It helps bootstrap projects faster with sensible defaults, environment config, and smooth upgrades across Symfony versions.

Deep Wiki
Context7

Symfony Flex is a Composer plugin that streamlines Symfony application setup by automating package configuration and project recipes. It makes installing, enabling, and wiring Symfony bundles feel seamless—reducing boilerplate and keeping projects consistent across environments.

Built around recipes, Flex applies best-practice defaults (config files, environment variables, scripts) when you require packages, helping teams move faster while staying aligned with Symfony conventions.

  • Installs and applies Symfony recipes automatically on composer require
  • Manages bundles, config, and scripts with minimal manual steps
  • Supports Symfony Packs for curated dependency sets
  • Enables project auto-configuration and sensible defaults
  • Integrates cleanly with Composer workflows for updates and removals
Frequently asked questions about Flex
Can Symfony Flex be used in a Laravel project to manage Symfony dependencies like symfony/mailer or symfony/process?
Yes, Symfony Flex works in Laravel projects to automate configuration for Symfony components or bundles. When you run `composer require symfony/mailer`, Flex will generate config files (e.g., `config/packages/mailer.yaml`) and environment variables automatically, reducing manual setup. However, it only handles Symfony packages—Laravel-native packages (e.g., `laravel/ui`) require manual configuration.
What Laravel versions and Composer setups are compatible with Symfony Flex?
Symfony Flex is compatible with any Laravel version since it operates at the Composer level, not the framework level. It requires Composer 1.6+ and works alongside Laravel’s core Composer plugins (e.g., `laravel/installer`). Test in CI first to ensure recipes don’t conflict with Laravel’s config caching or optimization commands like `php artisan config:cache`.
How do I install Symfony Flex in a Laravel project, and will it interfere with existing Composer scripts?
Install Flex globally or per-project with `composer require symfony/flex`. It integrates as a Composer plugin and won’t interfere with Laravel’s scripts unless you’re using custom `post-install-cmd` hooks. Flex triggers automatically during `composer require` for Symfony packages. For edge cases, isolate Flex to a sub-project or use `--no-plugins` for non-Symfony dependencies.
Does Symfony Flex support custom recipes for Laravel-specific Symfony integrations (e.g., spatie/laravel-activitylog)?
Flex primarily uses Symfony’s official recipes, but you can create custom recipes to bridge Laravel conventions. For example, you could write a recipe for `symfony/mailer` that generates `config/mail.php` instead of YAML. Check the [Flex documentation](https://symfony.com/doc/current/setup/flex.html#creating-a-custom-recipe) for recipe structure guidelines.
Will Symfony Flex break Laravel’s config caching or optimize commands like `php artisan config:cache`?
Flex shouldn’t break Laravel’s config caching directly, but its recipes may generate files in `config/packages/` (Symfony’s format). If you rely on Laravel’s `config:cache`, ensure your custom recipes output files compatible with Laravel’s config structure (e.g., PHP arrays instead of YAML). Test in staging before production.
Can I use Symfony Flex Packs to enforce consistent Symfony versions across a Laravel monorepo?
Yes, Flex Packs are ideal for enforcing consistent Symfony versions in monorepos or microservices. For example, create a Pack for `symfony/mailer@^6.0` and `symfony/http-client@^6.0`, then require it in all projects. This ensures all services use compatible Symfony versions. Audit `composer.json` for unintended package pulls via Packs to avoid bloat.
What happens if a Symfony Flex recipe conflicts with Laravel’s existing config (e.g., .env or config/mail.php)?
Flex recipes are designed to be non-destructive but may overwrite or merge configs. For example, if a recipe generates `.env` variables for `symfony/mailer`, it won’t delete existing Laravel `.env` entries but may add new ones. Always review generated files and back up configs before enabling Flex. Custom recipes can be adjusted to respect Laravel’s structure.
Are there alternatives to Symfony Flex for automating Symfony bundle setup in Laravel?
For Laravel-specific automation, tools like `laravel/installer` or custom `composer.json` scripts are alternatives, but they lack Flex’s recipe-driven depth. If you’re using Symfony components, Flex is the most robust solution. For hybrid projects, combine Flex with Laravel’s `bootstrap/app.php` to manually merge configs if needed. No alternative offers the same level of integration with Symfony’s ecosystem.
How do I debug issues where Symfony Flex isn’t applying recipes correctly in a Laravel project?
Start by running `composer why-not symfony/flex` to check for dependency conflicts. Enable verbose mode with `composer require --verbose symfony/mailer` to see recipe execution logs. Check the `var/cache/composer` directory for Flex’s generated files. If recipes fail, ensure your Composer version is up-to-date and that no custom `composer.json` scripts are interfering.
Does Symfony Flex work with Laravel’s Forge, Envoyer, or other deployment tools?
Flex operates at the Composer level, so it won’t conflict with Forge or Envoyer directly. However, its recipes may generate files (e.g., `config/packages/`) that need to be included in `.gitignore` or deployment configs. Test your CI/CD pipeline to ensure `composer install` with Flex completes successfully. If using Envoyer, add Flex’s generated files to your `deploy.php` `shared` or `released` directories as needed.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport