Я создал свои собственные сеансы magento, используя это руководство , но сессии настолько непостоянны, что сводят меня с ума!
Я создал список функций сеансов, так что все установщики сеансов,getter и unsetter используют модель сеанса.
Например, в моем app / code / MyModule / MySession / Model / Session.php file
есть множество таких функций
//Set the car model from the session
public function setSessionCarModel($value){
return $this->_session->setCarModel($value);
}
//Get the car model from the session
public function getSessionCarModel(){
return $this->_session->getCarModel();
}
//Unset the car model from the session
public function unsetSessionCarModel(){
return $this->_session->unsCarModel();
}
Затем я пытаюсь установить, получить и сбросить мои сеансы в нескольких местах на моем сайте, вот несколько примеров (я знаю, что мне не следовало использовать диспетчер объектов в файлах .phtml перед этим. будет замечено)
.phtml
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customSession = $objectManager->create('\MyModule\MySession\Model\Session');
$carModel = $customSession->getSessionCarModel();
Ajax-файл
namespace MyVendor\MyModule\Controller\Ajax;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\Controller\ResultFactory;
class Index extends Action {
protected $_customSession;
public function __construct(
Context $context,
\MyModule\MySession\Model\Session $customSession
)
{
parent::__construct($context);
$this->_customSession = $customSession;
}
public function execute(){
$this->_customSession->setSessionCarModel(1);
}
}
и множество других мест по всему сайту, но по какой-то причине мои сеансы кажутся непоследовательными, и это сводит меня с ума!
Иногда он вообще не устанавливает их, иногда он захватывает старые значения и т. д.
Я делаю что-то не так с тем, как я выполняю CASТом сессий?
Если кто-нибудь может помочь пролить свет на это, я был бы очень признателен!
Версия Magento - 2.3.2
СессияСпособ хранения - Файлы
Режим - Разработка