1. Go to this page and download the library: Download 00f100/fcphp-di 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/ */
00f100 / fcphp-di example snippets
use FcPHP\Di\Facades\DiFacade;
$di = DiFacade::getInstance();
/**
* Method to set new class
*
* @param string $id Identify of instance
* @param string $namespace Namespace of class
* @param array $args Args to construct class
* @return void
*/
$di->set(string $id, string $namespace, array $args = [], array $setters = [], bool $singleton = true);
/**
* Method to overwrite instance before make
*
* @param string $id Identify instance
* @param string $namespace Namespace of class
* @param array $args Args to construct class
* @param array $setters Setters to class
* @return FcPhp\Di\Interfaces\IDi
*/
$di->overwrite(string $id, string $namespace, array $args = [], array $setters = []) ;
/**
* Method to get instance of Container
*
* @param string $id Identify of instance
* @param array $args Args to construct instance
* @return FcPhp\Di\Interfaces\IContainer
*/
$di->get(string $id, array $args = [], array $setters = []);
/**
* Method to configure setters to class
*
* @param string $id Identify instance
* @param array $setters Setters to class
* @return FcPhp\Di\Interfaces\IDi
*/
$di->setter(string $id, array $setters);
/**
* Method instance of class
*
* @param string $id Identify of instance
* @param array $args Args to construct instance
* @return mixed
*/
$di->make(string $id, array $args = [], array $setters = []);
use FcPHP\Di\Facades\DiFacade;
$di = DiFacade::getInstance();
/*
namespace Namespace\To {
class Example {
public $foo;
private $anotherFoo;
public function __construct(string $foo) {
$this->foo = $foo;
}
public function setAnotherFoo($foo) {
$this->anotherFoo = $foo;
}
public functio getAnotherFoo() {
return $this->anotherFoo;
}
}
class ExampleBar {
public $example;
__construct(Example $example) {
$this->example = $example;
}
}
}
*/
$di->set('Example', 'Namespace\To\Example', ['foo' => 'bar'], ['setAnotherFoo', 'AnotherBar']);
$di->set('ExampleBar', 'Namespace\To\ExampleBar', ['example' => $di->get('Example')]);
// Print "bar"
echo $di->make('ExampleBar')->example->foo
// Print "AnotherBar"
echo $di->make('ExampleBar')->example->getAnotherFoo();