দেরিতে উত্তর দেওয়া, তবে এটি উল্লেখ করার মতো যে আপনি অজ্ঞাতনামা ব্যবহারকারীদের জন্য ব্যক্তিগত টেম্পস্টোরটি ব্যবহার করতে পারবেন , যতক্ষণ না টেম্পোরস্টোরটিতে একটি সক্রিয় সেশনে অ্যাক্সেস থাকে। এটি করার জন্য, আপনাকে টেম্প স্টোর, সেশন এবং বর্তমান ব্যবহারকারীর জন্য পরিষেবা সহ আপনার ক্লাসটি ইনজেক্ট করতে হবে:
public function __construct(PrivateTempStoreFactory $temp_store_factory, SessionManagerInterface $session_manager, AccountInterface $current_user) {
$this->tempStoreFactory = $temp_store_factory;
$this->sessionManager = $session_manager;
$this->currentUser = $current_user;
$this->store = $this->tempStoreFactory->get('myclass.storename');
}
public static function create(ContainerInterface $container) {
return new static(
$container->get('user.private_tempstore'),
$container->get('session_manager'),
$container->get('current_user')
);
}
তারপরে আপনার কেবলমাত্র টেম্প স্টোরটিতে কিছু রাখার আগে ব্যবহারকারী বেনামে থাকলে আপনি সেশন ম্যানেজারটি শুরু করে তা নিশ্চিত করতে হবে:
if ($this->currentUser->isAnonymous() && !isset($_SESSION['session_started'])) {
$_SESSION['session_started'] = true;
$this->sessionManager->start();
}
আপনি এই পদ্ধতির পছন্দনীয় হতে পারেন কারণ এর অর্থ হ'ল কোনও ব্যবহারকারী লগ ইন করেছেন কিনা তা বিবেচনা না করেই আপনি অস্থায়ী স্টোরেজের জন্য একটি একক সিস্টেম ব্যবহার করতে পারেন।
(আমার কোড উদাহরণগুলি মাল্টি-স্টেপ ফর্মগুলি তৈরির এই দুর্দান্ত টিউটোরিয়াল থেকে কম-বেশি-কম ভারব্যাটিকাম তোলা হয়েছে ))