PHPackages                             liquidrazor/diregistry - 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. [Framework](/categories/framework)
4. /
5. liquidrazor/diregistry

ActiveLibrary[Framework](/categories/framework)

liquidrazor/diregistry
======================

Strict descriptor-driven dependency injection registry library for PHP 8.3+.

v0.1.0(3mo ago)033MITPHPPHP &gt;=8.3

Since Mar 26Pushed 3mo agoCompare

[ Source](https://github.com/LiquidRazor/DIRegistry)[ Packagist](https://packagist.org/packages/liquidrazor/diregistry)[ Docs](https://github.com/LiquidRazor/DIRegistry)[ RSS](/packages/liquidrazor-diregistry/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (1)Versions (2)Used By (3)

DI Registry
===========

[](#di-registry)

DI Registry is a PHP 8.3+ library for descriptor-driven dependency resolution and instantiation.

It is intentionally strict:

- descriptors are explicit data, not executable configuration
- resolution keys are limited to contract or class path
- resolution is deterministic or it fails
- runtime instances are stored outside descriptor metadata
- scalar and configuration values are provided explicitly through a value provider

The library is built from four concrete runtime pieces:

- `RegistryCompiler` turns normalized descriptor definitions into a validated `CompiledRegistry`
- `DescriptorResolver` selects exactly one `ProspectDescriptor`
- `DescriptorInstantiator` builds an object from that descriptor
- `InMemoryRuntimeInstanceStore` handles singleton, scoped, and pooled runtime behavior

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

[](#installation)

```
composer require liquidrazor/diregistry
```

Requirements:

- PHP 8.3 or newer
- Composer autoloading
- a source of descriptor definitions before runtime

Quick Start
-----------

[](#quick-start)

```
