DI inject – problém závislostí s děděnými třídami
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- darthcz
- Člen | 113
Zdravím,
mám problém s injektováním závislosti, která je ve vztahu IS-A k nějaké jiné závislosti.
Mám v configu:
imageFacade: MTS\App\Models\Facades\ImageFacade
adImageFacade: MTS\App\FrontModule\AdModule\Models\Facades\AdImageFacade
Problém je, že pokud v presenteru mám kód uvedený níže, tak dostanu chybu Multiple services of type MTS\App\Models\Facades\ImageFacade found.
Dá se to nějak obejít? Nechci aby mi prošel potomek, když chci předka.
/** @var \MTS\App\Models\Facades\ImageFacade ImageFacade */
private $imageFacade;
/**
* Method to inject a dependency.
*
* @param \MTS\App\Models\Facades\ImageFacade $imageFacade
*
* @throws InvalidStateException
* @return void
*/
public function injectImageFacade(\MTS\App\Models\Facades\ImageFacade $imageFacade)
{
try {
if ($this->imageFacade !== NULL)
throw new InvalidStateException('ImageFacade has already been set.');
$this->imageFacade = $imageFacade;
} catch (\Exception $e) {
$this->processException($e);
}
}