xtompie/lainstance

Laravel container extension for resolving and defining singletons alongside classes

2.0 2021-06-03 20:38 UTC

This package is auto-updated.

Last update: 2024-04-29 04:59:35 UTC


README

Laravel container extension for resolving and defining singletons alongside classes

Installation

composer require xtompie/lainstance

Usage

Getting instance

<?php

use Xtompie\Lainstance\Instance;

class Foo
{
    use Instance;
}

$foo = Foo::instance();

Automatic Injection

<?php

use Xtompie\Lainstance\Instance;

class Bar
{
}

class Foo
{
    use Instance;

    public function __construct(
        public Bar $bar
    ) {}
}

$foo = Foo::instance();
echo get_class($foo->bar); // => Bar

Shared aka singleton binding

<?php

use Xtompie\Lainstance\Instance;
use Xtompie\Lainstance\Shared;

class Foo implements Shared
{
    use Instance;
}

echo Foo::instance() === Foo::instance(); // => 1