In case this might be helpful for other (beginners): Using the session object in a custom controller class with dependency injection.
Drupal\user\PrivateTempStoreFactory;
class mymodule_Controller extends ControllerBase {
/**
* The user's private $tempStore object.
*
* @var \Drupal\user\PrivateTempStoreFactory
*/
protected $tempStore;
public function __construct(PrivateTempStoreFactory $temp_store_factory) {
$this->tempStore = $temp_store_factory->get('mymodule_name');
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('user.private_tempstore')
);
}
// Now get and set values in tempstore
public function foo() {
$foo = "xyz";
// Set a session object "bar" and give it value $foo
$this->tempStore->set('bar', $foo);
// Get the 'bar' object from the session object.
$value = $this->tempStore->get('bar');
}
}