1. Go to this page and download the library: Download monolyth/disclosure library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
monolyth / disclosure example snippets
use Monolyth\Disclosure\Container;
$container = new Container;
$container->register(fn (&$foo) => $foo = new Foo);
use Monolyth\Disclosure\Injector;
class MyClass
{
use Injector;
public function __construct()
{
$this->inject(function ($foo, $bar) {});
// Or, alternatively:
$this->inject('foo', 'bar');
}
}
class Foo
{
}
$myInstance = new MyClass;
var_dump($myInstance->foo instanceof Foo); // true
use Monolyth\Disclosure\{ Depends, Factory };
class MyObject
{
[#Depends]
private Foo $foo;
public function __construct($someArgument, $anotherArgument)
{
$this->someArgument = $someArgument;
$this->anotherArgument = $anotherArgument;
}
public function doSomething()
{
return $this->foo->method($this->someArgument, $this->anotherArgument);
}
}
$myobject = Factory::build(MyObject::class, 'someArgument', 'anotherArgument');
var_dump($myobject->doSomething()); // Whatever Foo::method does...
class Foo
{
private $bar;
public function __construct(Bar $bar)
{
$this->bar = $bar;
// ...other constructor stuff...
}
}
class Foo
{
public function __construct(private Bar $bar)
{
// ...other constructor stuff, $this->bar is already set...
}
}
use Monolyth\Disclosure\{ Inject, Factory };
class Foo
{
public function __construct(
#[Depends]
private Bar $bar
) {
}
}
$foo = Factory::build(Foo::class);
use Monolyth\Disclosure\{ Inject, Factory };
class Foo
{
public function __construct(
#[Depends]
private Bar $bar,
string $someOtherArgument,
#[Depends]
public DateTime $dateTime,
int $aNumber
);
}
$foo = Factory::build(Foo::class, 'Hello world!', 42);
use Monolyth\Disclosure\{ Factory, Mother, Depends };
class Foo
{
public function __construct(
#[Depends]
protected SomeDependency $something,
public int $someArgument
) {}
}
class Bar extends Foo
{
use Mother;
public function __construct(protected string $anotherArgument)
{
$this->callParentConstructor(42);
echo get_class($this->something); // SomeDependency
echo $this->someArgument; // 42
echo $this->anotherArgument; // hello world
}
}
$bar = Factory::build(Foo::class, 'hello world');
$bar = new Bar('hello world');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.