PHPackages                             edisonlabs/merge-yaml - 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. edisonlabs/merge-yaml

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

edisonlabs/merge-yaml
=====================

Provides a composer plugin which merges yaml files.

2.0.0(5y ago)42.0M↑32.3%4[1 issues](https://github.com/EdisonLabs/merge-yaml/issues)1GPL-2.0+PHPCI failing

Since Jul 18Pushed 2mo ago5 watchersCompare

[ Source](https://github.com/EdisonLabs/merge-yaml)[ Packagist](https://packagist.org/packages/edisonlabs/merge-yaml)[ RSS](/packages/edisonlabs-merge-yaml/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelogDependencies (6)Versions (15)Used By (1)

[![Build Status](https://camo.githubusercontent.com/fabad0983afa4906fe49f53ae6c2b7916e33949e7fe93b9ed705cbcc5be4bb80/68747470733a2f2f7472617669732d63692e636f6d2f456469736f6e4c6162732f6d657267652d79616d6c2e7376673f6272616e63683d312e78)](https://travis-ci.com/EdisonLabs/merge-yaml) [![Coverage Status](https://camo.githubusercontent.com/1e5a4cab78ee1e2bf2319286721e60511b5f327de687866f0039fb751b20ad69/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f456469736f6e4c6162732f6d657267652d79616d6c2f62616467652e7376673f6272616e63683d312e78)](https://coveralls.io/github/EdisonLabs/merge-yaml?branch=1.x)

merge-yaml
==========

[](#merge-yaml)

Overview
--------

[](#overview)

Provides a composer plugin which merges yaml files.

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

[](#installation)

Configure the plugin in your composer.json file using for example:

```
"extra": {
    "merge-yaml": {
        "files": [
            "database.sanitize"
        ],
        "locations": [
            "app/modules",
            "app/profiles"
        ],
        "output-dir": "NOT-PUBLIC-FOLDER"
    }
}

```

Where:

- `files`: List of filenames (without the yml extension) to scan for.
- `locations`: List of paths to scan for yaml files.
- `output-dir`: The directory where the merged files will be placed.

How does it work
----------------

[](#how-does-it-work)

Every time that you run `composer install` or `composer update`, the plugin will scan the locations and merge the yml files to the output directory.

### Command

[](#command)

You can also use the command `composer merge-yaml` to run the merge process.

Use the option `--config` to specify a config.json file to override the config defined in the `composer.json`: `composer merge-yaml --config=config.json`.

The content of the configuration file passed in needs to be in this format:

```
{
    "files": [
        "database.sanitize"
    ],
    "locations": [
        "app/modules",
        "app/profiles"
    ],
    "output-dir": "NOT-PUBLIC-FOLDER"
}

```

Automated Tests and Code Sniffer
--------------------------------

[](#automated-tests-and-code-sniffer)

This repository is integrated with [Travis CI](https://travis-ci.com/EdisonLabs/merge-yaml) to perform tests and detect PHP standards violations.

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance52

Moderate activity, may be stable

Popularity45

Moderate usage in the ecosystem

Community18

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 61.4% 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 ~218 days

Recently: every ~309 days

Total

11

Last Release

672d ago

Major Versions

1.0.0 → 2.0.0-alpha12020-05-26

1.x-dev → 2.0.02021-02-23

2.x-dev → 3.0.0-beta12023-03-31

3.x-dev → 4.x-dev2024-07-15

### Community

Maintainers

![](https://www.gravatar.com/avatar/82291593cc1356f74a314304499ad8aa14c24ca61f99e6be72d24e21844457ab?d=identicon)[jkribeiro](/maintainers/jkribeiro)

---

Top Contributors

[![manuee](https://avatars.githubusercontent.com/u/105582?v=4)](https://github.com/manuee "manuee (27 commits)")[![jkribeiro](https://avatars.githubusercontent.com/u/1932061?v=4)](https://github.com/jkribeiro "jkribeiro (14 commits)")[![suzymasri](https://avatars.githubusercontent.com/u/12935384?v=4)](https://github.com/suzymasri "suzymasri (2 commits)")[![kmoll](https://avatars.githubusercontent.com/u/4575507?v=4)](https://github.com/kmoll "kmoll (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/edisonlabs-merge-yaml/health.svg)

```
[![Health](https://phpackages.com/badges/edisonlabs-merge-yaml/health.svg)](https://phpackages.com/packages/edisonlabs-merge-yaml)
```

###  Alternatives

[drupal/console-extend-plugin

Drupal Console Extend Plugin

13214.3M5](/packages/drupal-console-extend-plugin)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)[lullabot/drainpipe

An automated build tool to allow projects to have a set standardized operations scripts.

41716.4k2](/packages/lullabot-drainpipe)[altis/local-server

Local Server module for Altis

18208.4k2](/packages/altis-local-server)[grasmash/composerize-drupal

Convert a non-Composer managed Drupal application into a Composer-managed application.

12819.4k1](/packages/grasmash-composerize-drupal)[aeliot/todo-registrar

Register TODOs from source code in issue tracker

153.0k](/packages/aeliot-todo-registrar)

PHPackages © 2026

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