Symfony Factory

scorpion-ds

Новичок
Нашел вот такую статью:
http://symfony.com/doc/current/components/dependency_injection/factories.html

Все вроде понятно, за исключением момента, как в создаваемый объект передать динамический параметр?

В самом низу указывается как передать параметр, но это статическое значение, а мне не понятно, как указать динамический параметр, к примеру ID некого родителя, которому будет привязан новый объект.
 
Не очень понял, вот у меня такое объявление:
Код:
fc.office.settlements.forecast.office:
        class: FC\OfficeBundle\Settlements\Forecast\ForecastOffice
        factory: [FC\OfficeBundle\Service\ForecastFactory, createForecastOffice]

В контроллере я получаю объект так:
PHP:
$test = $this->get('fc.office.settlements.forecast.office');

Сам по себе метод "createForecastOffice" я не вызываю.
 
я ступил, я не объявил сам класс фабрики как сервис. Теперь как-то так:
PHP:
$test = $this->get('fc.office.settlements.forecast.office.factory')->createForecastOffice(<param>);

Вурдалак, а что можно сделать, что-то вроде:
PHP:
$test = $this->ForecastFactory->createForecastOffice();
для вызова фабрики?
 
scorpion-ds, всё очень просто: значит тебе нужно объявлять ForecastOffice сервисом. Объявляй сервисом фабрику и работай с ней.
 
Я наверно все же туплю ..., допустим я объявил фабрику сервисом, но тогда отпадает смысл в объявлении:
Код:
fc.office.settlements.forecast.office:
        class: FC\OfficeBundle\Settlements\Forecast\ForecastOffice
        factory: [FC\OfficeBundle\Service\ForecastFactory, createForecastOffice]

Я тогда делаю просто:
Код:
fc.office.settlements.forecast.office.factory:
        class: FC\OfficeBundle\Service\ForecastFactory
        arguments: [@fc.office.manager]
Часть аргументов (сейчас один) я статически подключаю, остальные как параметры метода "createForecastOffice".

Не вижу смысла в объявлении фабрики, если она не позволяет гибко настроить входящие параметры.
 
Сверху