PHPackages                             imponeer/extension-info-contracts - 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. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. imponeer/extension-info-contracts

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

imponeer/extension-info-contracts
=================================

Interfaces that helps to describe extension

v0.5.2(5mo ago)04821MITPHPPHP &gt;=8.3CI passing

Since Feb 10Pushed 1w ago2 watchersCompare

[ Source](https://github.com/imponeer/extension-info-contracts)[ Packagist](https://packagist.org/packages/imponeer/extension-info-contracts)[ RSS](/packages/imponeer-extension-info-contracts/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (5)Versions (16)Used By (1)

[![License](https://camo.githubusercontent.com/fdfc149940c64419ba7e9a43cc8cc3798b4ab5fc94d4227db6caf03a24c9b8c9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f696d706f6e6565722f657874656e73696f6e2d696e666f2d636f6e7472616374732e737667)](LICENSE) [![GitHub release](https://camo.githubusercontent.com/9954c6ca5794a2ec5c0dd0e6e274e13610a9652da0a55ae4c01deeae69571735/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f696d706f6e6565722f657874656e73696f6e2d696e666f2d636f6e7472616374732e737667)](https://github.com/imponeer/extension-info-contracts/releases) [![PHP](https://camo.githubusercontent.com/820a870e0085c0b3f3903f71a007f9f0270f1860f6fbbffe96babffa7fa4e2d5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f696d706f6e6565722f657874656e73696f6e2d696e666f2d636f6e7472616374732e737667)](http://php.net) [![Packagist](https://camo.githubusercontent.com/f2727d4811beff29c12bfb75fe33876aefbfb089e01e07f777297f424d03e4c0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f696d706f6e6565722f657874656e73696f6e2d696e666f2d636f6e7472616374732e737667)](https://packagist.org/packages/imponeer/extension-info-contracts)

Extensions Info Contracts
=========================

[](#extensions-info-contracts)

A contract library that standardizes how extension information is retrieved across different installation methods.

Many extensions (especially for CMS platforms) can be installed through multiple methods—via [Composer](https://getcomposer.org) or by manually copying files to specific directories. This diversity creates challenges when trying to gather consistent information about installed extensions. This library provides standardized contracts to solve that problem, making it easier to create unified extension information readers regardless of the installation method.

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

[](#installation)

We recommend installing this package via [Composer](https://getcomposer.org):

```
composer require imponeer/extension-info-contracts
```

Alternatively, you can manually include the files from the `src/` directory.

Usage
-----

[](#usage)

The following libraries implement these contracts:

- [ImpressCMS/extensions-formats](https://github.com/ImpressCMS/extensions-formats) - Extension reader for [ImpressCMS](https://impresscms.org) themes and modules

Development
-----------

[](#development)

The following Composer commands are available for development:

**Check code style:**

```
composer phpcs
```

Runs PHP\_CodeSniffer to check code style according to defined standards.

**Fix code style issues:**

```
composer phpcbf
```

Automatically fixes code style issues using PHP\_CodeSniffer.

**Static analysis:**

```
composer phpstan
```

Runs PHPStan for static code analysis using the configuration in `phpstan.neon`.

API Documentation
-----------------

[](#api-documentation)

Autogenerated API documentation is available in the [project wiki](https://github.com/imponeer/extension-info-contracts/wiki).

Contributing
------------

[](#contributing)

Contributions are welcome! To add functionality or fix bugs:

1. Fork the repository
2. Make your changes
3. Create a pull request

For bug reports or questions, please use the [issues tab](https://github.com/imponeer/extension-info-contracts/issues).

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance87

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 72.1% 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 ~146 days

Recently: every ~228 days

Total

13

Last Release

160d ago

PHP version history (3 changes)v0.1PHP &gt;=7.1

v0.4PHP &gt;=7.3

v0.5.0PHP &gt;=8.3

### Community

Maintainers

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

![](https://www.gravatar.com/avatar/7255f306e0ca27292c50cdd9644c1c04e0d7b0f54bf35e0cdd79dc55c83b4923?d=identicon)[MekDrop](/maintainers/MekDrop)

![](https://www.gravatar.com/avatar/79009323fafcd4974bb1713b12eea0a610f01c4fb21cc5e85d446c4cb66453d4?d=identicon)[skenow](/maintainers/skenow)

---

Top Contributors

[![MekDrop](https://avatars.githubusercontent.com/u/342641?v=4)](https://github.com/MekDrop "MekDrop (75 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (24 commits)")[![Codex](https://avatars.githubusercontent.com/in/2248422?v=4)](https://github.com/Codex "Codex (2 commits)")[![fiammybe](https://avatars.githubusercontent.com/u/3736946?v=4)](https://github.com/fiammybe "fiammybe (2 commits)")[![mend-bolt-for-github[bot]](https://avatars.githubusercontent.com/in/16809?v=4)](https://github.com/mend-bolt-for-github[bot] "mend-bolt-for-github[bot] (1 commits)")

---

Tags

composer-librarydecouplingdescriptorhacktoberfestinterfacesinterfacescontractsabstractionsdecouplingextensionsinfo

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/imponeer-extension-info-contracts/health.svg)

```
[![Health](https://phpackages.com/badges/imponeer-extension-info-contracts/health.svg)](https://phpackages.com/packages/imponeer-extension-info-contracts)
```

###  Alternatives

[symfony/translation-contracts

Generic abstractions related to translation

2.6k698.7M431](/packages/symfony-translation-contracts)[symfony/contracts

A set of abstractions extracted out of the Symfony components

3.9k64.6M103](/packages/symfony-contracts)

PHPackages © 2026

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