Skip to content
Evgeniy Kuvshinov edited this page Jan 26, 2019 · 22 revisions

Установка

С помощью composer.

composer require smpl/mydi 

Требуется PHP >= 7.2

Пример использования

Допустим есть объект A который зависит от B и нам нужно получить объект A.

  1. Создать файлы с классами A (src/A.php) и B (src/B.php)
  2. Сделаем файл конфигурации(app/di.php) который вернет Container.
  3. Пример использования (public/index.php).
// src/A.php class A { private $b; public function __construct(B $b) { $this->b = $b; } }
// src/B.php class B{}
// app/di.php use Smpl\Mydi\Container; use Smpl\Mydi\Provider\Autowire; $providers = []; $providers[] = Autowire::withoutCache(); return new Container(... $providers);
// public/index.php use Psr\Container\ContainerInterface; require __DIR__ . '/../vendor/autoload.php'; /** @var ContainerInterface $container */ $container = require __DIR__ . '/../app/di.php'; $a = $container->get(A::class);

Основная конфигурация описывается в app/di.php с помощью различных провайдеров.

Clone this wiki locally