novara/dynamic-readonly-classes

Create objects with constant values based on dynamically passed content.

v1.0.1 2024-10-12 11:49 UTC

This package is auto-updated.

Last update: 2025-03-12 12:45:43 UTC


README

Dynamic Readonly Classes

License: MIT

Misusing anonymous classes in the best way possible.

Installation

composer require novara/dynamic-readonly-classes "*"

Usage

DRCFactory::create(null, [
    'Foo' => 'Bar',
])::Foo // returns 'Bar'

This is useful for extending classes:

// SomeClass.php
abstract class SomeClass
{
    public function test(): string
    {
        return static::TEST;
    }
}

// Other code
DRCFactory::create(SomeClass::class, [
    'TEST' => 'funny text here',
])->test(),