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

Symfony Config Manipulator Bundle Laravel Package

c33s/symfony-config-manipulator-bundle

Symfony2 bundle to keep YAML config organized by splitting app/config/config*.yml into section files (framework, doctrine, twig, etc.) and rewriting imports accordingly. Helps declutter large config.yml files and manage per-environment configs cleanly.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Modular Configuration for Laravel: While this package is Symfony-specific, it inspires a Laravel-native approach to splitting monolithic config/app.php into modular, environment-specific files (e.g., config/auth.php, config/cache.php). This aligns with Laravel’s growing emphasis on configuration-as-code and package-based configs (e.g., config/packages/).
  • Developer Experience (DX) and Collaboration: Reduces merge conflicts in config/app.php by isolating config sections, improving onboarding and team productivity—critical for large teams or legacy Laravel apps with sprawling configs.
  • Environment-Specific Customization: Enables cleaner CI/CD pipelines by separating dev/prod/test configs (e.g., config/env.php + modular files) without duplication, reducing deployment risks.
  • Build vs. Buy: Avoids reinventing the wheel by leveraging Laravel’s existing tools (e.g., config:publish, Artisan commands) instead of adopting Symfony-specific solutions. If a custom tool is needed, it can be built lightweight and Laravel-idiomatic.
  • Roadmap for Configuration Validation: Paves the way for automated config validation (e.g., checking for required keys, environment-specific overrides) or integration with infrastructure-as-code (e.g., Terraform for dynamic configs).
  • Legacy Symfony Migration: If the team is phasing out Symfony 2, this package highlights the need for a parallel Laravel config strategy to avoid tech debt during migration.

When to Consider This Package

  • Avoid if:

    • You’re not using Symfony 2 (this package is incompatible with Laravel, Lumen, or other PHP frameworks).
    • Your Laravel config is already modular (e.g., using config/packages/, config/env.php, or published package configs).
    • You prioritize runtime config flexibility (e.g., dynamic configs loaded via API or environment variables) over static file-based configs.
    • Your team prefers Laravel’s native tools (e.g., config:publish, env() helper) over third-party solutions.
    • You’re using Laravel 5.5+, where Symfony’s config_splitter is less relevant (Laravel’s config system is more mature).
  • Consider if:

    • You’re maintaining a legacy Symfony 2 app and need to parallelize Laravel config practices (e.g., for migration planning).
    • You’re building a Laravel package that requires Symfony interoperability (e.g., a bridge bundle).
    • You’re auditing config tech debt and want to compare Symfony vs. Laravel config patterns for future projects.
    • You’re exploring config-as-code tools and want to evaluate YAML-based approaches (though Laravel’s PHP arrays are the standard).

How to Pitch It (Stakeholders)

For Executives: "This Symfony package shows us how NOT to manage Laravel configs—but it highlights a critical gap in our current setup. Right now, our config/app.php is a monolithic mess, causing merge conflicts and slowing down deployments. While we can’t use this package directly, we can borrow its philosophy to build a Laravel-native config organizer—splitting config/app.php into modular files (e.g., config/auth.php, config/cache.php) to make our stack scalable and team-friendly. This is a low-cost, high-impact fix for a common pain point, with minimal dev effort. Think of it as ‘Git for configs’—version-controlled, maintainable, and collision-proof."

For Engineers: *"This bundle doesn’t work for Laravel, but it’s a great case study for why we should modularize our configs. Here’s what we can learn:

  • Problem: Symfony’s config.yml becomes unmanageable. Same happens to Laravel’s config/app.php in large apps.
  • Solution: Split configs into small, focused files (e.g., config/mail.php, config/queue.php) to:
    • Reduce merge conflicts (no more 500-line app.php edits).
    • Improve readability (find cache.driver in config/cache.php).
    • Support environments (override config/debug.php in config/env.php).
  • How to do it in Laravel:
    1. Manual split: Extract sections from config/app.php into new files (use config:publish for packages).
    2. Custom Artisan command: Auto-split app.php (parse PHP with token_get_all() to preserve comments).
    3. Validation: Add checks for duplicate keys or missing required configs. Downside: No drop-in replacement, but easy to prototype with existing Laravel tools. Worth a spike to compare with current workflows."*

For PMs: *"This is a red flag for Laravel config hygiene—but also an opportunity to future-proof our stack. Here’s why it matters:

  • Risk: Monolithic config/app.php is a scaling bottleneck (merge hell, onboarding pain).
  • Opportunity: Modular configs reduce risk in CI/CD and improve collaboration, especially for teams >5 devs.
  • Leverage: We don’t need this package—we can build a lighter version using Laravel’s Artisan and config/ system.
  • ROI: Low effort (1–2 dev days to prototype), high impact (cleaner deploys, happier devs). Tradeoff: Not a silver bullet (e.g., won’t solve runtime config changes), but a critical hygiene tool for maintainable Laravel apps. Prioritize if config merge conflicts are a recurring issue."*
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.
emuniq/filament-browser-notifications
syriable/filament-translator
hungnm28/livewire-form
wenprise/eloquent
crudly/encrypted
fadion/bouncy
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui