PHPackages                             congraph/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. [Utility &amp; Helpers](/categories/utility)
4. /
5. congraph/contracts

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

congraph/contracts
==================

Interfaces for Congraph CMS

v2.0.3(2mo ago)12517MITPHPPHP ^8.3 || ^8.4 || ^8.5

Since Mar 7Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/congraphcms/contracts)[ Packagist](https://packagist.org/packages/congraph/contracts)[ RSS](/packages/congraph-contracts/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (2)Dependencies (2)Versions (9)Used By (7)

congraph/contracts
==================

[](#congraphcontracts)

`congraph/contracts` contains the shared PHP interfaces used across the Congraph package ecosystem.

What this package provides
--------------------------

[](#what-this-package-provides)

- repository contracts
- command/validation contracts
- cross-package interfaces that let packages depend on abstractions instead of concrete implementations

This package has no database schema, no Laravel service provider, and no runtime behavior by itself.

When to use it
--------------

[](#when-to-use-it)

Use this package when:

- a package needs to type-hint another package's repository or service
- you are adding a new reusable abstraction to Congraph
- you want to decouple command handlers, validators, or services from implementation details

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

[](#installation)

```
composer require congraph/contracts
```

Package structure
-----------------

[](#package-structure)

Most interfaces live under namespaces like:

- `Congraph\Contracts\Core`
- `Congraph\Contracts\Eav`
- `Congraph\Contracts\Filesystem`
- `Congraph\Contracts\Locales`
- `Congraph\Contracts\Workflows`

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

[](#development)

This package is intentionally small. Changes here ripple into the rest of the monorepo.

When editing contracts:

1. update the interface
2. verify all implementations in other packages still match
3. run the dependent package test suites

Testing
-------

[](#testing)

This package does not currently ship its own PHPUnit suite. Validation happens through the dependent packages.

From the monorepo root:

```
composer test
```

Contribution notes
------------------

[](#contribution-notes)

- keep interfaces minimal
- avoid framework-specific details in contracts
- prefer additive changes over breaking signature changes
- if a signature must change, update all implementing packages in the same branch

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance84

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 57.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 ~739 days

Total

5

Last Release

81d ago

Major Versions

v1.1.0 → v2.0.02026-04-11

PHP version history (4 changes)v1.0betaPHP &gt;=5.4.0

v1.0.0PHP ^8.1.0

v1.1.0PHP ^8.2.0

v2.0.0PHP ^8.3 || ^8.4 || ^8.5

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3585404?v=4)[Nikola Plavšić](/maintainers/nikolaplavsic)[@nikolaplavsic](https://github.com/nikolaplavsic)

---

Top Contributors

[![nikolaplavsic](https://avatars.githubusercontent.com/u/3585404?v=4)](https://github.com/nikolaplavsic "nikolaplavsic (4 commits)")[![veljamatic](https://avatars.githubusercontent.com/u/1091355?v=4)](https://github.com/veljamatic "veljamatic (3 commits)")

### Embed Badge

![Health badge](/badges/congraph-contracts/health.svg)

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

###  Alternatives

[illuminate/support

The Illuminate Support package.

630113.0M40.2k](/packages/illuminate-support)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M337](/packages/psalm-plugin-laravel)[illuminate/collections

The Illuminate Collections package.

27078.0M1.0k](/packages/illuminate-collections)[illuminate/events

The Illuminate Events package.

13557.0M2.1k](/packages/illuminate-events)[illuminate/pagination

The Illuminate Pagination package.

12234.1M1.0k](/packages/illuminate-pagination)[illuminate/pipeline

The Illuminate Pipeline package.

9349.2M273](/packages/illuminate-pipeline)

PHPackages © 2026

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