本文整理汇总了PHP中Magento\Framework\Session\SessionManagerInterface类的典型用法代码示例。如果您正苦于以下问题:PHP SessionManagerInterface类的具体用法?PHP SessionManagerInterface怎么用?PHP SessionManagerInterface使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SessionManagerInterface类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validate
/**
* Validate session
*
* @param SessionManagerInterface $session
* @return void
* @throws SessionException
*/
public function validate(SessionManagerInterface $session)
{
if (!isset($_SESSION[self::VALIDATOR_KEY])) {
$_SESSION[self::VALIDATOR_KEY] = $this->_getSessionEnvironment();
} else {
try {
$this->_validate();
} catch (SessionException $e) {
$session->destroy(['clear_storage' => false]);
// throw core session exception
throw $e;
}
}
}
示例2: getConfig
/**
* Retrieve assoc array of checkout configuration
*
* @return array
*/
public function getConfig()
{
$vaultPayments = [];
$customerId = $this->session->getCustomerId();
if (!$customerId) {
return $vaultPayments;
}
$storeId = $this->storeManager->getStore()->getId();
if (!$this->vaultPayment->isActive($storeId)) {
return $vaultPayments;
}
$vaultProviderCode = $this->vaultPayment->getProviderCode($storeId);
$componentProvider = $this->getComponentProvider($vaultProviderCode);
if (null === $componentProvider) {
return $vaultPayments;
}
$filters[] = $this->filterBuilder->setField(PaymentTokenInterface::CUSTOMER_ID)->setValue($customerId)->create();
$filters[] = $this->filterBuilder->setField(PaymentTokenInterface::IS_VISIBLE)->setValue(1)->create();
$filters[] = $this->filterBuilder->setField(PaymentTokenInterface::PAYMENT_METHOD_CODE)->setValue($vaultProviderCode)->create();
$searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create();
foreach ($this->paymentTokenRepository->getList($searchCriteria)->getItems() as $index => $token) {
$component = $componentProvider->getComponentForToken($token);
$vaultPayments[VaultPaymentInterface::CODE . '_item_' . $index] = ['config' => $component->getConfig(), 'component' => $component->getName()];
}
return ['payment' => [VaultPaymentInterface::CODE => $vaultPayments]];
}
示例3: aroundExecute
/**
* @param \Magento\Customer\Controller\Ajax\Login $subject
* @param \Closure $proceed
* @return $this
* @throws \Zend_Json_Exception
* @SuppressWarnings(PHPMD.NPathComplexity)
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function aroundExecute(\Magento\Customer\Controller\Ajax\Login $subject, \Closure $proceed)
{
$captchaFormIdField = 'captcha_form_id';
$captchaInputName = 'captcha_string';
/** @var \Magento\Framework\App\RequestInterface $request */
$request = $subject->getRequest();
$loginParams = [];
$content = $request->getContent();
if ($content) {
$loginParams = \Zend_Json::decode($content);
}
$username = isset($loginParams['username']) ? $loginParams['username'] : null;
$captchaString = isset($loginParams[$captchaInputName]) ? $loginParams[$captchaInputName] : null;
$loginFormId = isset($loginParams[$captchaFormIdField]) ? $loginParams[$captchaFormIdField] : null;
foreach ($this->formIds as $formId) {
$captchaModel = $this->helper->getCaptcha($formId);
if ($captchaModel->isRequired($username) && !in_array($loginFormId, $this->formIds)) {
$resultJson = $this->resultJsonFactory->create();
return $resultJson->setData(['errors' => true, 'message' => __('Provided form does not exist')]);
}
if ($formId == $loginFormId) {
$captchaModel->logAttempt($username);
if (!$captchaModel->isCorrect($captchaString)) {
$this->sessionManager->setUsername($username);
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
$resultJson = $this->resultJsonFactory->create();
return $resultJson->setData(['errors' => true, 'message' => __('Incorrect CAPTCHA')]);
}
}
}
return $proceed();
}
示例4: aroundDispatch
/**
* @param \Magento\Framework\App\Action\Action $subject
* @param callable $proceed
* @param \Magento\Framework\App\RequestInterface $request
* @return mixed
*/
public function aroundDispatch(\Magento\Framework\App\Action\Action $subject, \Closure $proceed, \Magento\Framework\App\RequestInterface $request)
{
$defaultStore = $this->storeManager->getWebsite()->getDefaultStore();
$this->httpContext->setValue(\Magento\Core\Helper\Data::CONTEXT_CURRENCY, $this->session->getCurrencyCode(), $defaultStore->getDefaultCurrency()->getCode());
$this->httpContext->setValue(\Magento\Core\Helper\Data::CONTEXT_STORE, $this->httpRequest->getParam('___store', $defaultStore->getStoreCodeFromCookie()), $this->storeManager->getWebsite()->getDefaultStore()->getCode());
return $proceed($request);
}
示例5: aroundDispatch
/**
* @param \Magento\Framework\App\ActionInterface $subject
* @param callable $proceed
* @param \Magento\Framework\App\RequestInterface $request
* @return mixed
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundDispatch(\Magento\Framework\App\ActionInterface $subject, \Closure $proceed, \Magento\Framework\App\RequestInterface $request)
{
/** @var \Magento\Store\Model\Store $defaultStore */
$defaultStore = $this->storeManager->getWebsite()->getDefaultStore();
$requestedStoreCode = $this->httpRequest->getParam(StoreResolverInterface::PARAM_NAME, $this->storeCookieManager->getStoreCodeFromCookie());
/** @var \Magento\Store\Model\Store $currentStore */
$currentStore = $requestedStoreCode ? $this->storeManager->getStore($requestedStoreCode) : $defaultStore;
$this->httpContext->setValue(StoreManagerInterface::CONTEXT_STORE, $currentStore->getCode(), $this->storeManager->getDefaultStoreView()->getCode());
$this->httpContext->setValue(HttpContext::CONTEXT_CURRENCY, $this->session->getCurrencyCode() ?: $currentStore->getDefaultCurrencyCode(), $defaultStore->getDefaultCurrencyCode());
return $proceed($request);
}
示例6: getConfig
/**
* Retrieve assoc array of checkout configuration
*
* @return array
*/
public function getConfig()
{
$availableMethods = [];
$vaultPayments = $this->getVaultPaymentMethodList();
$customerId = $this->session->getCustomerId();
$storeId = $this->storeManager->getStore()->getId();
foreach ($vaultPayments as $method) {
$availableMethods[$method->getCode()] = ['is_enabled' => $customerId !== null && $method->isActive($storeId)];
}
return [self::$vaultCode => $availableMethods];
}
示例7: _prepareForm
/**
* Prepare rating edit form
*
* @return $this
*/
protected function _prepareForm()
{
/** @var \Magento\Framework\Data\Form $form */
$form = $this->_formFactory->create();
$this->setForm($form);
$fieldset = $form->addFieldset('rating_form', array('legend' => __('Rating Title')));
$fieldset->addField('rating_code', 'text', array('name' => 'rating_code', 'label' => __('Default Value'), 'class' => 'required-entry', 'required' => true));
foreach ($this->_systemStore->getStoreCollection() as $store) {
$fieldset->addField('rating_code_' . $store->getId(), 'text', array('label' => $store->getName(), 'name' => 'rating_codes[' . $store->getId() . ']'));
}
if ($this->_session->getRatingData()) {
$form->setValues($this->_session->getRatingData());
$data = $this->_session->getRatingData();
if (isset($data['rating_codes'])) {
$this->_setRatingCodes($data['rating_codes']);
}
$this->_session->setRatingData(null);
} elseif ($this->_coreRegistry->registry('rating_data')) {
$form->setValues($this->_coreRegistry->registry('rating_data')->getData());
if ($this->_coreRegistry->registry('rating_data')->getRatingCodes()) {
$this->_setRatingCodes($this->_coreRegistry->registry('rating_data')->getRatingCodes());
}
}
if ($this->_coreRegistry->registry('rating_data')) {
$collection = $this->_optionFactory->create()->getResourceCollection()->addRatingFilter($this->_coreRegistry->registry('rating_data')->getId())->load();
$i = 1;
foreach ($collection->getItems() as $item) {
$fieldset->addField('option_code_' . $item->getId(), 'hidden', array('required' => true, 'name' => 'option_title[' . $item->getId() . ']', 'value' => $item->getCode() ? $item->getCode() : $i));
$i++;
}
} else {
for ($i = 1; $i <= 5; $i++) {
$fieldset->addField('option_code_' . $i, 'hidden', array('required' => true, 'name' => 'option_title[add_' . $i . ']', 'value' => $i));
}
}
$fieldset = $form->addFieldset('visibility_form', array('legend' => __('Rating Visibility')));
if (!$this->_storeManager->isSingleStoreMode()) {
$field = $fieldset->addField('stores', 'multiselect', array('label' => __('Visible In'), 'name' => 'stores[]', 'values' => $this->_systemStore->getStoreValuesForForm()));
$renderer = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element');
$field->setRenderer($renderer);
if ($this->_coreRegistry->registry('rating_data')) {
$form->getElement('stores')->setValue($this->_coreRegistry->registry('rating_data')->getStores());
}
}
$fieldset->addField('is_active', 'checkbox', array('label' => __('Is Active'), 'name' => 'is_active', 'value' => 1));
$fieldset->addField('position', 'text', array('label' => __('Sort Order'), 'name' => 'position'));
if ($this->_coreRegistry->registry('rating_data')) {
$form->getElement('position')->setValue($this->_coreRegistry->registry('rating_data')->getPosition());
$form->getElement('is_active')->setIsChecked($this->_coreRegistry->registry('rating_data')->getIsActive());
}
return parent::_prepareForm();
}
示例8: afterGenerateXml
/**
* After generate Xml
*
* @param \Magento\Framework\View\LayoutInterface $subject
* @param \Magento\Framework\View\LayoutInterface $result
* @return \Magento\Framework\View\LayoutInterface
*/
public function afterGenerateXml(\Magento\Framework\View\LayoutInterface $subject, $result)
{
if ($this->depersonalizeChecker->checkIfDepersonalize($subject)) {
$this->visitor->setSkipRequestLogging(true);
$this->visitor->unsetData();
$this->session->clearStorage();
$this->customerSession->clearStorage();
$this->session->setData(\Magento\Framework\Data\Form\FormKey::FORM_KEY, $this->formKey);
$this->customerSession->setCustomerGroupId($this->customerGroupId);
$this->customerSession->setCustomer($this->customerFactory->create()->setGroupId($this->customerGroupId));
}
return $result;
}
示例9: testDelete
public function testDelete()
{
$cookiePath = '/';
$cookieDomain = 'example.com';
/** @var PublicCookieMetadata|\PHPUnit_Framework_MockObject_MockObject $metadata */
$metadata = $this->getMockBuilder('Magento\\Framework\\Stdlib\\Cookie\\PublicCookieMetadata')->disableOriginalConstructor()->getMock();
$this->cookieMetadataFactory->expects(static::once())->method('createCookieMetadata')->willReturn($metadata);
$this->sessionManager->expects(static::once())->method('getCookiePath')->willReturn($cookiePath);
$metadata->expects(static::once())->method('setPath')->with($cookiePath)->willReturnSelf();
$this->sessionManager->expects(static::once())->method('getCookieDomain')->willReturn($cookieDomain);
$metadata->expects(static::once())->method('setDomain')->with($cookieDomain)->willReturnSelf();
$this->cookieManagerMock->expects(static::once())->method('deleteCookie')->with(FormKey::COOKIE_NAME, $metadata);
$this->formKey->delete();
}
示例10: execute
/**
* @inheritdoc
*/
public function execute()
{
$response = $this->resultFactory->create(ResultFactory::TYPE_JSON);
try {
$publicHash = $this->getRequest()->getParam('public_hash');
$customerId = $this->session->getCustomerId();
$result = $this->command->execute(['public_hash' => $publicHash, 'customer_id' => $customerId])->get();
$response->setData(['paymentMethodNonce' => $result['paymentMethodNonce']]);
} catch (\Exception $e) {
$this->logger->critical($e);
return $this->processBadRequest($response);
}
return $response;
}
示例11: testToHtml
/**
* Run test toHtml method
*
* @param bool $customerId
* @return void
*
* @dataProvider dataProviderToHtml
*/
public function testToHtml($customerId)
{
$cacheData = false;
$idQueryParam = 'id-query-param';
$sessionId = 'session-id';
$this->additional->setData('cache_lifetime', 789);
$this->additional->setData('cache_key', 'cache-key');
$this->eventManagerMock->expects($this->once())->method('dispatch')->with('view_block_abstract_to_html_before', ['block' => $this->additional]);
$this->scopeConfigMock->expects($this->once())->method('getValue')->with('advanced/modules_disable_output/Magento_Persistent', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)->willReturn(false);
// get cache
$this->cacheStateMock->expects($this->at(0))->method('isEnabled')->with(\Magento\Persistent\Block\Header\Additional::CACHE_GROUP)->willReturn(true);
// save cache
$this->cacheStateMock->expects($this->at(1))->method('isEnabled')->with(\Magento\Persistent\Block\Header\Additional::CACHE_GROUP)->willReturn(false);
$this->cacheMock->expects($this->once())->method('load')->willReturn($cacheData);
$this->sidResolverMock->expects($this->never())->method('getSessionIdQueryParam')->with($this->sessionMock)->willReturn($idQueryParam);
$this->sessionMock->expects($this->never())->method('getSessionId')->willReturn($sessionId);
// call protected _toHtml method
$sessionMock = $this->getMock('Magento\\Persistent\\Model\\Session', ['getCustomerId'], [], '', false);
$this->persistentSessionHelperMock->expects($this->atLeastOnce())->method('getSession')->willReturn($sessionMock);
$sessionMock->expects($this->atLeastOnce())->method('getCustomerId')->willReturn($customerId);
if ($customerId) {
$this->assertEquals('<span><a >Not you?</a></span>', $this->additional->toHtml());
} else {
$this->assertEquals('', $this->additional->toHtml());
}
}
示例12: redirect
/**
* Set redirect into response
*
* @param \Magento\Framework\App\ResponseInterface $response
* @param string $path
* @param array $arguments
* @return void
*/
public function redirect(\Magento\Framework\App\ResponseInterface $response, $path, $arguments = array())
{
if ($this->_session->getCookieShouldBeReceived() && $this->_urlBuilder->getUseSession() && $this->_canUseSessionIdInParam) {
$arguments += array('_query' => array($this->_sidResolver->getSessionIdQueryParam($this->_session) => $this->_session->getSessionId()));
}
$response->setRedirect($this->_urlBuilder->getUrl($path, $arguments));
}
示例13: updatePathParams
/**
* {@inheritdoc}
*
* @param array $arguments
* @return array
*/
public function updatePathParams(array $arguments)
{
if ($this->_session->getCookieShouldBeReceived() && $this->_sidResolver->getUseSessionInUrl() && $this->_canUseSessionIdInParam) {
$arguments += ['_query' => [$this->_sidResolver->getSessionIdQueryParam($this->_session) => $this->_session->getSessionId()]];
}
return $arguments;
}
示例14: getSafeSessionId
/**
* Get a hash of the session id.
*
* @return string|null
*/
protected function getSafeSessionId()
{
if (!$this->safeSessionId) {
// When there is no session id, safeSessionId will be set to null.
// This will prevent the method call from getting cached (above
// check will fail) and cause the session to be rechecked for a
// session id on successive calls until a session id is retrieved.
// Allowing this behavior in case a log call happens before the
// session is started. Some calls may miss the session id but once
// it is available, it will be retrieved, cached and attached to
// later log calls.
$sessionId = $this->session->getSessionId();
$this->safeSessionId = $sessionId ? hash('sha256', $this->session->getSessionId()) : null;
}
return $this->safeSessionId;
}
示例15: testGetDataWithCustomerFormData
public function testGetDataWithCustomerFormData()
{
$customerId = 11;
$customerFormData = ['customer' => ['email' => 'test1@test1.ua', 'default_billing' => 3, 'default_shipping' => 3, 'entity_id' => $customerId], 'address' => [3 => ['firstname' => 'firstname1', 'lastname' => 'lastname1', 'street' => ['street1', 'street2'], 'default_billing' => 3, 'default_shipping' => 3]]];
$customer = $this->getMockBuilder('Magento\\Customer\\Model\\Customer')->disableOriginalConstructor()->getMock();
$address = $this->getMockBuilder('Magento\\Customer\\Model\\Address')->disableOriginalConstructor()->getMock();
$collectionMock = $this->getMockBuilder('Magento\\Customer\\Model\\ResourceModel\\Customer\\Collection')->disableOriginalConstructor()->getMock();
$collectionMock->expects($this->once())->method('addAttributeToSelect')->with('*');
$this->customerCollectionFactoryMock->expects($this->once())->method('create')->willReturn($collectionMock);
$collectionMock->expects($this->once())->method('getItems')->willReturn([$customer]);
$customer->expects($this->once())->method('getData')->willReturn(['email' => 'test@test.ua', 'default_billing' => 2, 'default_shipping' => 2]);
$customer->expects($this->once())->method('getId')->willReturn($customerId);
$customer->expects($this->once())->method('getAddresses')->willReturn([$address]);
$address->expects($this->atLeastOnce())->method('getId')->willReturn(2);
$address->expects($this->once())->method('load')->with(2)->willReturnSelf();
$address->expects($this->once())->method('getData')->willReturn(['firstname' => 'firstname', 'lastname' => 'lastname', 'street' => "street\nstreet"]);
$helper = new ObjectManager($this);
$dataProvider = $helper->getObject('\\Magento\\Customer\\Model\\Customer\\DataProvider', ['name' => 'test-name', 'primaryFieldName' => 'primary-field-name', 'requestFieldName' => 'request-field-name', 'eavValidationRules' => $this->eavValidationRulesMock, 'customerCollectionFactory' => $this->customerCollectionFactoryMock, 'eavConfig' => $this->getEavConfigMock()]);
$reflection = new \ReflectionClass(get_class($dataProvider));
$reflectionProperty = $reflection->getProperty('session');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($dataProvider, $this->sessionMock);
$this->sessionMock->expects($this->once())->method('getCustomerFormData')->willReturn($customerFormData);
$this->sessionMock->expects($this->once())->method('unsCustomerFormData');
$this->assertEquals([$customerId => $customerFormData], $dataProvider->getData());
}