PHPackages                             c33s/symfony-config-manipulator-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. c33s/symfony-config-manipulator-bundle

AbandonedSymfony-bundle[Utility &amp; Helpers](/categories/utility)

c33s/symfony-config-manipulator-bundle
======================================

Utilities to automatically organize Symfony2 YAML config files

v0.3.0(9y ago)125.3k2[2 issues](https://github.com/vworldat/C33sSymfonyConfigManipulatorBundle/issues)1MITPHPPHP &gt;=5.4.0

Since Aug 22Pushed 9y ago2 watchersCompare

[ Source](https://github.com/vworldat/C33sSymfonyConfigManipulatorBundle)[ Packagist](https://packagist.org/packages/c33s/symfony-config-manipulator-bundle)[ Docs](https://github.com/vworldat/C33sSymfonyConfigManipulatorBundle)[ RSS](/packages/c33s-symfony-config-manipulator-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (8)Used By (1)

Keep your Symfony2 YAML config files organized
==============================================

[](#keep-your-symfony2-yaml-config-files-organized)

[![Build Status](https://camo.githubusercontent.com/035d8018d1a7081b88af17eade6e31483b30d2c64f649c2815b88f4a191159a3/68747470733a2f2f7472617669732d63692e6f72672f76776f726c6461742f4333337353796d666f6e79436f6e6669674d616e6970756c61746f7242756e646c652e737667)](https://travis-ci.org/vworldat/C33sSymfonyConfigManipulatorBundle)[![SensioLabsInsight](https://camo.githubusercontent.com/0f1106236e7ce15206e07480f86398341546772593bf7cba64993e83cfc39cab/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f37313663343331372d616166312d343636632d393062662d3438633364393862663863302f6d696e692e706e67)](https://insight.sensiolabs.com/projects/716c4317-aaf1-466c-90bf-48c3d98bf8c0)[![codecov.io](https://camo.githubusercontent.com/426ba1edbfe910c42128edbb5cec380a689a7f35a7d03592038e3c9be5afc7be/687474703a2f2f636f6465636f762e696f2f6769746875622f76776f726c6461742f4333337353796d666f6e79436f6e6669674d616e6970756c61746f7242756e646c652f636f7665726167652e7376673f6272616e63683d6d6173746572)](http://codecov.io/github/vworldat/C33sSymfonyConfigManipulatorBundle?branch=master)

Do you hate stuffing tons of config into a single `config.yml` file, losing track of all the sections inside the file? Then this is for you!

This bundle provides some general-purpose YAML and Symfony config manipulation tasks. The most important one is to split the Symfony `app/config/config*.yml` files into separate sections, leading to a structure like this:

```
# Symfony Standard Edition 2.7.3

app/config
├── config
│   ├── assetic.yml
│   ├── doctrine.yml
│   ├── framework.yml
│   ├── parameters.yml
│   ├── swiftmailer.yml
│   └── twig.yml
│
├── config_dev
│   ├── assetic.yml
│   ├── framework.yml
│   ├── monolog.yml
│   ├── swiftmailer.yml
│   └── web_profiler.yml
│
├── config_prod
│   ├── doctrine.yml
│   ├── framework.yml
│   └── monolog.yml
│
├── config_test
│   ├── framework.yml
│   ├── swiftmailer.yml
│   └── web_profiler.yml
│
├── config_dev.yml
├── config_prod.yml
├── config_test.yml
├── config.yml
│
│   # parameters.yml, routing.yml, security.yml etc. will never be touched
├── parameters.yml
├── parameters.yml.dist
├── routing_dev.yml
├── routing.yml
├── security.yml
└── services.yml

```

The cleaned up `config.yml` looks like this:

```
imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
    - { resource: config/assetic.yml }
    - { resource: config/doctrine.yml }
    - { resource: config/framework.yml }
    - { resource: config/parameters.yml }
    - { resource: config/swiftmailer.yml }
    - { resource: config/twig.yml }
```

`config_dev.yml` content:

```
imports:
    - { resource: config.yml }
    - { resource: config_dev/assetic.yml }
    - { resource: config_dev/framework.yml }
    - { resource: config_dev/monolog.yml }
    - { resource: config_dev/swiftmailer.yml }
    - { resource: config_dev/web_profiler.yml }
```

### Advantages:

[](#advantages)

- Keep an overview which config modules are present by just looking at the sub folders
- By keeping separate files in your git repository, you may easily follow changes for specific config sections
- Working in larger teams becomes a little easier when the main `config.yml` isn't edited by several people at once
- *The configuration sections are copied as YAML text, not array data, so all your comments and formatting are preserved!*
- Manipulating specific config sections programmatically becomes a little easier

Installation
------------

[](#installation)

Require [`c33s/symfony-config-manipulator-bundle`](https://packagist.org/packages/c33s/symfony-config-manipulator-bundle) in your `composer.json` file:

```
{
    "require": {
        "c33s/symfony-config-manipulator-bundle": "@stable",
    }
}
```

or, if you are using ['composer-yaml'](https://packagist.org/packages/igorw/composer-yaml):

```
require:
    c33s/symfony-config-manipulator-bundle:     '@stable'
```

Register the bundle in `app/AppKernel.php`:

```
    // app/AppKernel.php

    public function registerBundles()
    {
        return array(
            // ... existing bundles
            new C33s\SymfonyConfigManipulatorBundle\C33sSymfonyConfigManipulatorBundle(),
        );
    }
```

Usage
-----

[](#usage)

All you have to do is run a single command:

```
$ php app/console config:refresh-files

```

You may re-run it anytime you want. This is especially helpful if you are adding new configuration sections to your project. Just paste them into your main `config.yml`, `config_dev.yml` or similar files and run the command to instantly move the new configuration to separate files.

If you add a config section to your `config.yml` that is already present in a separate file with the same name, the command will exit with an error message. Merge your configurations manually and you're good again.

Safety
------

[](#safety)

The config splitter will never overwrite any existing module config files as long as they contain parseable YAML. But as Murphy's law goes, there might be bugs where nobody expects them.

**Make sure to commit your configuration files to your git repository to keep your code safe!**

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 91.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~60 days

Recently: every ~72 days

Total

6

Last Release

3613d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/649209?v=4)[Julian](/maintainers/c33s)[@c33s](https://github.com/c33s)

![](https://www.gravatar.com/avatar/deeaba849ce463d391d2ac97f4059349b04afe430554049bf471528a3eaaaed1?d=identicon)[vworldat](/maintainers/vworldat)

---

Top Contributors

[![vworldat](https://avatars.githubusercontent.com/u/650955?v=4)](https://github.com/vworldat "vworldat (21 commits)")[![rufinus](https://avatars.githubusercontent.com/u/343160?v=4)](https://github.com/rufinus "rufinus (1 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/c33s-symfony-config-manipulator-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/c33s-symfony-config-manipulator-bundle/health.svg)](https://phpackages.com/packages/c33s-symfony-config-manipulator-bundle)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

310107.9k1](/packages/cognesy-instructor-php)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[pixelopen/cloudflare-turnstile-bundle

A simple package to help integrate Cloudflare Turnstile on Symfony.

31205.8k3](/packages/pixelopen-cloudflare-turnstile-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
