как получить значение сессии внутри symfony2 я использую fosuserbundle

Я использую fosuserbundle, и это моя функция внутри класса FOSUBUserProvider:

public function connect(UserInterface $user, UserResponseInterface $response) { // and here i want to get session value like: $session = $request->getSession(); $session->get('value1'); // } 

вам необходимо ввести Session в свою декларацию служб,

а затем добавьте его в конструктор класса FOSUserProvider ,

в разделе services.yml и services добавьте @session

 parameters: my_user_provider.class: Auth\UserBundle\Security\Core\User\FOSUBUserProvider services: my_user_provider: class: "%my_user_provider.class%" #this is the place where the properties are passed to the UserProvider class arguments: [@fos_user.user_manager,{facebook: facebookID},@session,@doctrine.orm.entity_manager] 

объявите $session и переменную $ em в свой класс выше функции connect и добавьте следующий конструктор,

 public function __construct(UserManager $userManager, Array $properties, Session $session, EntityManager $em) { $this->session=$session; $this->em=$em; parent::__construct($userManager, $properties); } 

в функции Connect вы можете получить его как,

 public function connect(UserInterface $user, UserResponseInterface $response) { $value=$this->session->get('value1'); $em=$this->em; // or directly use $this->em->flush(); or whatever you want . . . }