Как внедрить зависимости службы в фабричный метод при передаче пользовательских параметров в Laravel?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как внедрить зависимости службы в фабричный метод при передаче пользовательских параметров в Laravel?

Сообщение Anonymous »

Я хотел бы создать сервис, используя шаблон проектирования фабричного метода. Итак, я создал следующий продукт:

Код: Выделить всё

class ActivityReport
{
private $activityService;

public function __construct(Customer $customer, ActivityService $activityService)
{
$this->activityService = $activityService;
}

public function getData()
{
// It will be more code
return $this->activityService->getAll($this->customer->id);
}
}
И я называю это так:

Код: Выделить всё

class ActivityReportCreator extends ReportCreator
{
private $customer;

function __construct(Customer $customer)
{
$this->customer = $customer;
}

public function generate() {
$activity = new ActivityReport($customer->id);
return $activity->getData();
}
}
Проблема здесь связана с конструктором продукта, который принимает сервис через DI (внедрение зависимостей), который должен автоматически загружаться, как это обычно происходит со службами или контроллерами. ActivityService зарегистрирован и работает, например, в контроллерах. Я могу запустить его с помощью app(ActivityReport::class), но прежде всего мне все равно нужно будет передать объект $customer не конструктору, а методу. Во-вторых, я хочу везде последовательно ссылаться на сервис, как это делается в случае с контроллерами.
Как этого добиться?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ustom-para
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»