Внедрение зависимостей через метод установки - PullRequest
0 голосов
/ 03 июня 2019

Возникла проблема с внедрением зависимостей в PHP, на которую я не могу найти ответ.Хорошо, быстрый класс PHP:

<?php

namespace myapp;

use myapp\template;
use myapp\order;

class user {

    private $template;

    public function __construct(template $template) { 
         $this->template = $template;
     }

    public function add_order(order $order) { 
         // do something with $order here
    }

}

Я использую пакет php-di из http://php -di.org / , хотя я открыт для изменений.Мой вопрос, как я могу ввести непосредственно в эту функцию add_order ()?Инжекция Construct проста, и, например:

$container = new Di\Container();
$container->make(mapp\user);

Я хочу, чтобы инъекция такого же типа происходила, но при непосредственном вызове функции add_order ().Я хочу что-то вроде этого:

$container = new Di\Container();
$container->make(myapp\user::add_order);

Любая помощь?Благодаря ~

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете использовать:

return [
    'mapp\user' => DI\autowire()
        ->method('add_order', <put here what you want to inject>),
];
...