Wie kann ich get-Request-Objekt innerhalb einer Klasse in Symfony 2?
Habe ich eine Klasse in Symfony, die eine Schnittstelle implementiert. Muss ich haben, $request, POST-params. Das ist meine Funktion:
class WebserviceUserProvider implements UserProviderInterface
{
public function loadUserByUsername($username)
{
$salt = "";
$roles = "";
//make a call to your webservice here
.....
}
...
}
Kann ich das nicht:
public function loadUserByUsername($username, Request $request)
weil ich brauche die Schnittstelle implementieren, und ich bekomme diese Fehlermeldung:
FatalErrorException: Kompilieren-Fehler: Deklaration
Actas\Gestion\UserBundle\Sicherheit\Benutzer\WebserviceUserProvider::loadUserByUsername()
muss kompatibel sein mit
Symfony\Component\Security\Core\User\UserProviderInterface::loadUserByUsername($username)
Wie bekomme ich den request-params? Diese Klasse wird aufgerufen, aus login, und ich brauche das Passwort gesendet werden, indem ein WebService um den Benutzer zu authentifizieren.
Vielen Dank im Voraus!
Dies ist mein services.xml im Bundle:
# src/Actas/Gestion/UserBundle/Resources/config/services.yml
parameters:
webservice_user_provider.class: Actas\Gestion\UserBundle\Security\User\WebserviceUserProvider
services:
webservice_user_provider:
class: "%webservice_user_provider.class%"
scope: container
calls:
- [setServiceContainer , ["@service_container"]]
InformationsquelleAutor Javier Núñez | 2014-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben Czechnology Antwort, könnte man auch Spritzen die Anfrage über eine setter-Methode. In services.yml hinzufügen:
Dann deklarieren Sie Ihre Klasse wie folgt aus:
Wenn Sie haben Umfang Erweiterung Fragen, Sie könnte auch versuchen, die Injektion der service-container und die Beantragung von es. Im Dienste erklären Sie Ihre Dienstleistung so:
Nun verwenden Sie einfach die container, um die Anfrage:
Danke für Eure Hilfe! Ich bin immer dieser Fehler jetzt. Ich weiß nicht, ob ich schreiben soll, meine Antworten in einen anderen Ort! (bin neu hier)
Sind Sie einschließlich den Bereich: request-Zeile in der service-Deklaration?
Sie könnten versuchen, die übergabe der service-container @service_container dann aufrufen $container->get('request') mit der gleichen dependency injection Prinzipien.
Gelöst! Ich habe bekommen die Behälter, wie Sie angeben und alles funktioniert jetzt. Ich danke Ihnen sehr für Ihre Hilfe!
InformationsquelleAutor joe42
In der Config-Datei
Referenz :
http://symfony.com/blog/new-in-symfony-2-4-the-request-stack
InformationsquelleAutor Sufiyan Malek
Wie wollen Sie laden Sie das service? Können Sie injizieren verschiedene Sachen im service:
werden und diese im Konstruktor
InformationsquelleAutor Czechnology
Ich hatte ein ähnliches problem. Kann sein das es hilft diese Lösung. Können Sie Spritzen den @service_container der service. Dann können Sie prüfen, ob der Bereich 'bitte' aktiv ist, und bekommen dann die Anfrage. Dies ist ein service für die Erstellung einer globalen variable für accesing der Sprache Variablen vom Zweig.
InformationsquelleAutor Jaime Niñoles