PHPackages                             simplesamlphp/composer-module-installer - 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. simplesamlphp/composer-module-installer

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

simplesamlphp/composer-module-installer
=======================================

A Composer plugin that allows installing SimpleSAMLphp modules through Composer.

v1.7.0(3mo ago)1310.8M↓45.1%220LGPL-2.1-onlyPHPPHP ^8.3CI passing

Since Feb 21Pushed 1w ago5 watchersCompare

[ Source](https://github.com/simplesamlphp/composer-module-installer)[ Packagist](https://packagist.org/packages/simplesamlphp/composer-module-installer)[ RSS](/packages/simplesamlphp-composer-module-installer/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (4)Versions (27)Used By (20)

SimpleSAMLphp Composer module installer
=======================================

[](#simplesamlphp-composer-module-installer)

[![Build Status](https://github.com/simplesamlphp/composer-module-installer/workflows/CI/badge.svg?branch=master)](https://github.com/simplesamlphp/composer-module-installer/workflows/CI/badge.svg?branch=master)[![Coverage Status](https://camo.githubusercontent.com/361573b1a13a3754dc20dc2fe6cd5319adec88589a1b9ac2f652816fc5ba5ca3/68747470733a2f2f636f6465636f762e696f2f67682f73696d706c6573616d6c7068702f636f6d706f7365722d6d6f64756c652d696e7374616c6c65722f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/simplesamlphp/composer-module-installer)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/33becdc5d5b470586c332fb8bd362a044798a74579459207c8cc727ee5d55af7/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f73696d706c6573616d6c7068702f636f6d706f7365722d6d6f64756c652d696e7374616c6c65722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/simplesamlphp/composer-module-installer/?branch=master)[![Type coverage](https://camo.githubusercontent.com/f8b48a7cd3ed8241bf99d9482d459b05e4f16f8e3857f6bbb6c0cabe6b97a2f5/68747470733a2f2f73686570686572642e6465762f6769746875622f73696d706c6573616d6c7068702f636f6d706f7365722d6d6f64756c652d696e7374616c6c65722f636f7665726167652e737667)](https://shepherd.dev/github/simplesamlphp/composer-module-installer)

This package is a Composer plugin that allows a SimpleSAMLphp module to be installed through Composer. Installation can be as easy as executing:

```
composer.phar require vendor/simplesamlphp-module-mymodule 1.*
```

That command would install `vendor/simplesamlphp-module-mymodule` matching version `1.*`.

Making a module installable through Composer
--------------------------------------------

[](#making-a-module-installable-through-composer)

To make a module installable through Composer, you need to add a `composer.json`-file to the root of the module. It should look something like:

```
{
    "name": "vendor/simplesamlphp-module-mymodule",
    "description": "A description of the module 'mymodule'.",
    "type": "simplesamlphp-module",
    "require": {
        "simplesamlphp/composer-module-installer": "~1.4"
    }
}
```

The package name must be on the form:

```
/simplesamlphp-module-
```

`` is the vendor name you use, and `` is the name of your module. Your module will be installed in the `modules/`directory in the SimpleSAMLphp installation directory.

Assets modules
--------------

[](#assets-modules)

Asset modules are a special kidn of module that will install pre-built assets in SimpleSAMLphp's `public/` directory. These modules follow a slightly different naming convention `simplesamlphp-assets-`

Installing your custom module
-----------------------------

[](#installing-your-custom-module)

If you publish your module on [Packagist](https://packagist.org/), no special configuration is required to install your module. However, if your module is hosted in a private repository, you need to add a repository for the module to your SimpleSAMLphp `composer.json` file. For example, if your module is located in a Git repository in `/home/username/mymodule`, you would add something like the following to `repositories` in `composer.json`:

```
{
    "type": "vcs",
    "url": "/home/username/mymodule"
}
```

The `repositories array may look something like:

```
"repositories": [
    {
        "type": "package",
        "package": {
            "name": "robrichards/xmlseclibs",
            "version": "1.3.1",
            "source": {
                "type": "svn",
                "url": "http://xmlseclibs.googlecode.com/svn",
                "reference": "trunk@50"
            },
            "autoload": {
                "files": ["xmlseclibs.php"]
            }
        }
    },
    {
        "type": "vcs",
        "url": "/home/username/mymodule"
    }
]
```

Once you have added the repository, you should be able to install your module by executing:

```
composer.phar require vendor/simplesamlphp-module-mymodule:dev-master
```

(`dev-master` instructs Composer to install the `master`-branch from the Git repository.)

See the [Composer Repository documentation](https://getcomposer.org/doc/05-repositories.md)for more information about adding your own custom repositories to Composer.

Module names that contain uppercase letters
-------------------------------------------

[](#module-names-that-contain-uppercase-letters)

New modules should only have lowercase letters in the module name, however a lot of existing module names contain uppercase letters. Since Composer package names should only contain lowercase letters, a mixed-case variant of the module name can be provided in the `ssp-mixedcase-module-name` extra data option:

```
{
    "name": "vendor/simplesamlphp-module-mymodule",
    "description": "A description of the module 'MyModule'.",
    "type": "simplesamlphp-module",
    "extra": {
        "ssp-mixedcase-module-name": "myModule"
    },
    "require": {
        "simplesamlphp/composer-module-installer": "~1.4"
    }
}
```

Note that this is only meant for migration of existing modules. New modules should only use lowercase letters in the name.

###  Health Score

71

—

ExcellentBetter than 100% of packages

Maintenance90

Actively maintained with recent releases

Popularity53

Moderate usage in the ecosystem

Community39

Small or concentrated contributor base

Maturity88

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 72.5% 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 ~190 days

Recently: every ~84 days

Total

24

Last Release

110d ago

PHP version history (4 changes)v1.2.0PHP ^7.4 || ^8.0

v1.4.0PHP ^8.1

v1.5.0PHP ^8.2

v1.7.0PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/579a16ea8afccc6ab420c393f0e573296fe46dcd293aa4f3b71eefc158ebf3e4?d=identicon)[jaime](/maintainers/jaime)

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

![](https://www.gravatar.com/avatar/9221e348303eeda74e85236a8bff9b919a90d10e3a478fe1cbb9d833f68d0150?d=identicon)[thijskh](/maintainers/thijskh)

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

---

Top Contributors

[![tvdijen](https://avatars.githubusercontent.com/u/841045?v=4)](https://github.com/tvdijen "tvdijen (79 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (14 commits)")[![jaimeperez](https://avatars.githubusercontent.com/u/1942728?v=4)](https://github.com/jaimeperez "jaimeperez (8 commits)")[![olavmo-sikt](https://avatars.githubusercontent.com/u/98447575?v=4)](https://github.com/olavmo-sikt "olavmo-sikt (4 commits)")[![sgomez](https://avatars.githubusercontent.com/u/580701?v=4)](https://github.com/sgomez "sgomez (1 commits)")[![shamus13](https://avatars.githubusercontent.com/u/4719838?v=4)](https://github.com/shamus13 "shamus13 (1 commits)")[![szabogyula](https://avatars.githubusercontent.com/u/3406217?v=4)](https://github.com/szabogyula "szabogyula (1 commits)")[![esler](https://avatars.githubusercontent.com/u/2031969?v=4)](https://github.com/esler "esler (1 commits)")

### Embed Badge

![Health badge](/badges/simplesamlphp-composer-module-installer/health.svg)

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

###  Alternatives

[symfony/runtime

Enables decoupling PHP applications from global state

74694.9M933](/packages/symfony-runtime)[ergebnis/composer-normalize

Provides a composer plugin for normalizing composer.json.

1.1k40.0M2.6k](/packages/ergebnis-composer-normalize)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5344.1M525](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2124.0M192](/packages/drupal-core-project-message)[sandersander/composer-link

Adds ability to link local packages for development with composer

98441.4k](/packages/sandersander-composer-link)[phpro/grumphp-shim

GrumPHP Phar distribution

284.6M333](/packages/phpro-grumphp-shim)

PHPackages © 2026

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