PHPackages                             magicsunday/webtrees-module-installer-plugin - 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. magicsunday/webtrees-module-installer-plugin

ActiveComposer-plugin

magicsunday/webtrees-module-installer-plugin
============================================

A Composer plugin installer for directly installing webtrees modules into its modules\_v4 directory.

1.8.0(8mo ago)010.6k13GPL-3.0-or-laterPHPPHP &gt;=8.2.0 &lt;8.5.0CI passing

Since Sep 8Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/magicsunday/webtrees-module-installer-plugin)[ Packagist](https://packagist.org/packages/magicsunday/webtrees-module-installer-plugin)[ RSS](/packages/magicsunday-webtrees-module-installer-plugin/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (8)Versions (14)Used By (3)

Webtrees Module Installer Plugin
================================

[](#webtrees-module-installer-plugin)

[![Latest version](https://camo.githubusercontent.com/3085f6018b7cd770f78cdc717a89e2f0169ddc42031392f95ca28ad3e30f5ee8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d6167696373756e6461792f77656274726565732d6d6f64756c652d696e7374616c6c65722d706c7567696e3f736f72743d73656d766572)](https://github.com/magicsunday/webtrees-module-installer-plugin/releases/latest)[![License](https://camo.githubusercontent.com/80fa5bd6363064e9c2065dba6ee956b6c89b97340f3a3988b74fab87727a4c08/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6167696373756e6461792f77656274726565732d6d6f64756c652d696e7374616c6c65722d706c7567696e)](https://github.com/magicsunday/webtrees-module-installer-plugin/blob/main/LICENSE)[![CI](https://github.com/magicsunday/webtrees-module-installer-plugin/actions/workflows/ci.yml/badge.svg)](https://github.com/magicsunday/webtrees-module-installer-plugin/actions/workflows/ci.yml)

A powerful Composer plugin that simplifies the installation of modules for the [webtrees](https://www.webtrees.net) genealogy application by automatically placing them in the correct directory structure.

### 🚀 Seamless Integration

[](#-seamless-integration)

Automatically installs webtrees modules to the correct `modules_v4` directory without manual file copying.

### ⚙️ Easy Configuration

[](#️-easy-configuration)

Simple setup with minimal configuration required in your composer.json file.

🌟 Why Use This Plugin?
----------------------

[](#-why-use-this-plugin)

When developing or using modules for webtrees, managing the installation process can be cumbersome. This plugin solves that problem by:

- Automatically detecting and installing modules with the `webtrees-module` type
- Placing modules in the correct `modules_v4` directory structure
- Supporting both direct installation and installation via a separate composer.json
- Eliminating the need for manual file copying or symlink creation

📋 Requirements
--------------

[](#-requirements)

### System Requirements

[](#system-requirements)

- PHP 8.2 or higher (compatible up to PHP 8.4)
- Composer 2.6 or higher

🔧 Installation
--------------

[](#-installation)

Add this plugin to the `require` or `require-dev` section of your `composer.json` file:

```
"require": {
    "magicsunday/webtrees-module-installer-plugin": "^1.6"
},
```

Or install it using Composer:

```
composer require magicsunday/webtrees-module-installer-plugin
```

Make sure to allow the plugin in your composer.json:

```
"config": {
    "allow-plugins": {
        "magicsunday/webtrees-module-installer-plugin": true
    }
}
```

📦 Usage
-------

[](#-usage)

### For Module Users

[](#for-module-users)

To install a webtrees module with composer, simply require the module in your composer.json:

```
composer require vendor-name/module-name
```

The plugin will automatically install the module to the `modules_v4` directory.

### For Module Developers

[](#for-module-developers)

When creating a webtrees module, set the package type to `webtrees-module` in your module's composer.json:

```
{
    "name": "your-vendor-name/your-module-name",
    "description": "Your module description",
    "type": "webtrees-module",
    "require": {
        "php": ">=8.2.0"
    }
}
```

#### Pro Tip

[](#pro-tip)

The module name in the composer.json file will determine the directory name in the `modules_v4` directory.

### Installing from GitHub

[](#installing-from-github)

If your module is not listed on Packagist, you can install it directly from GitHub:

```
composer config repositories.your-repo-name vcs https://github.com/your-vendor-name/your-module-name
composer require your-vendor-name/your-module-name[:optional-branch-name]
```

For example, to install the dev-master branch:

```
composer require your-vendor-name/your-module-name:dev-master
```

🧪 Testing
---------

[](#-testing)

The plugin includes several testing tools to ensure code quality:

```
# Run all tests
composer ci:test

# Run specific tests
composer ci:test:php:phpstan  # Static analysis
composer ci:test:php:lint     # PHP linting
composer ci:test:php:rector   # Code quality checks
composer ci:test:php:cgl      # Coding guidelines
```

🔍 How It Works
--------------

[](#-how-it-works)

The plugin works by:

1. Registering a custom installer with Composer's installation manager
2. Detecting packages with the `webtrees-module` type
3. Determining the correct installation path in the `modules_v4` directory
4. Handling both direct installation and installation via a separate composer.json

The main components are:

- `ModuleInstallerPlugin`: Implements Composer's PluginInterface
- `ModuleInstaller`: Extends Composer's LibraryInstaller to handle module installation
- `Config`: Manages configuration settings and path resolution

👥 Contributing
--------------

[](#-contributing)

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

Please make sure your code follows the project's coding standards by running the tests before submitting.

📄 License
---------

[](#-license)

This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.

🙏 Acknowledgements
------------------

[](#-acknowledgements)

- [webtrees](https://www.webtrees.net) - The open source web genealogy application
- [Composer](https://getcomposer.org/) - Dependency Manager for PHP

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance60

Regular maintenance activity

Popularity27

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity87

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 100% 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 ~212 days

Recently: every ~4 days

Total

13

Last Release

257d ago

PHP version history (7 changes)v1.0PHP &gt;=5.3.3 &lt;7.0

v1.1PHP &gt;=7.0

1.3PHP ^7.0 || ^8.0

1.3.2PHP ^7.4 || ^8.0

1.4.0PHP ^8.1

1.5.0PHP &gt;=8.2.0 &lt;8.4.0

1.6.0PHP &gt;=8.2.0 &lt;8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/1979dde7200fccc0e21e18a29b5566f22fa01ad104e577254fe74e14ae04a297?d=identicon)[magicsunday](/maintainers/magicsunday)

---

Top Contributors

[![magicsunday](https://avatars.githubusercontent.com/u/564393?v=4)](https://github.com/magicsunday "magicsunday (21 commits)")

---

Tags

composer-plugininstallermodulewebtreesinstallermodulecomposer-pluginwebtreeswebtrees-module

###  Code Quality

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/magicsunday-webtrees-module-installer-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/magicsunday-webtrees-module-installer-plugin/health.svg)](https://phpackages.com/packages/magicsunday-webtrees-module-installer-plugin)
```

###  Alternatives

[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

2994.3M15](/packages/vaimo-composer-patches)[drupal-composer/preserve-paths

Composer plugin for preserving custom paths and supporting nested packages

271.1M5](/packages/drupal-composer-preserve-paths)[compwright/codeigniter-installers

Composer installers for CodeIgniter

2982.0k4](/packages/compwright-codeigniter-installers)

PHPackages © 2026

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