Jestem nowy w świecie symfonii. chcę użyć renderowanie w mojej służbie, ale mam ten błądRenderowanie w mojej usłudze
Zaproszenie do metody nieokreślone renderView
wiem, że renderView to skrót od
/**
* Returns a rendered view.
*
* @param string $view The view name
* @param array $parameters An array of parameters to pass to the view
*
* @return string The rendered view
*/
public function renderView($view, array $parameters = array())
{
return $this->container->get('templating')->render($view, $parameters);
}
Ale don” t wiem, co mam do iniekcji w mojej służbie. Wiem nawet, że z polecenia php app/console container:debug
mogę zobaczyć wszystkie moje usługi są dostępne, ale nie wiem, w jaki sposób można wziąć/wybrać właściwą
aktualizacji
Próbowałem dodać
arguments: [@mailer,@templating]
ale mam ServiceCircularReferenceException
UPDATE
zmieniłem service.yml z
arguments: [@service_container]
a nawet mojej służby
$email = $this->service_container->get('mailer');
$twig = $this->service_container->get('templating');
dla Mail Service wykorzystanie (SWIFT) i renderowania.
Nie sądzę, że to najlepsze rozwiązanie. Chciałabym wstrzykiwań Tylko mailer
i templating
UPDATE Po odpowiedź Jasona Używam Symfony 2.3
mój services.yml
services:
EmailService:
class: %EmailService.class%
arguments: [@mailer,@templating,%EmailService.adminEmail%]
Mam ten ServiceCircularReferenceException
jest to jasne, ale jeśli I Wstrzykiwanie "[@ mailer, @ szablon]" muszę wstrzyknąć cały pojemnik. – monkeyUser
Jakiego typu usługi tworzysz? Czy jest samodzielny, czy może jest słuchaczem innego wydarzenia? Nie powinieneś uzyskiwać okrągłego błędu referencyjnego za pomocą programu pocztowego i szablonów, chyba że słuchasz wydarzenia, które już je wstrzykuje. Zgaduję, że korzystasz z szablonów do renderowania szablonu używanego w wiadomości e-mail. –
to prosta usługa, która tworzy pocztę e-mail i renderuje emailTemplate – monkeyUser