| Current Path : /home/rtorresani/www/vendor/magento/module-customer/Block/Adminhtml/Edit/Address/ |
| Current File : //home/rtorresani/www/vendor/magento/module-customer/Block/Adminhtml/Edit/Address/GenericButton.php |
<?php
declare(strict_types=1);
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Customer\Block\Adminhtml\Edit\Address;
use Magento\Customer\Model\AddressFactory;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\UrlInterface;
use Magento\Customer\Model\ResourceModel\Address;
use Magento\Customer\Model\ResourceModel\AddressRepository;
/**
* Class for common code for buttons on the create/edit address form
*/
class GenericButton
{
/**
* @var AddressFactory
*/
private $addressFactory;
/**
* @var UrlInterface
*/
private $urlBuilder;
/**
* @var Address
*/
private $addressResourceModel;
/**
* @var RequestInterface
*/
private $request;
/**
* @var AddressRepository
*/
private $addressRepository;
/**
* @param AddressFactory $addressFactory
* @param UrlInterface $urlBuilder
* @param Address $addressResourceModel
* @param RequestInterface $request
* @param AddressRepository $addressRepository
*/
public function __construct(
AddressFactory $addressFactory,
UrlInterface $urlBuilder,
Address $addressResourceModel,
RequestInterface $request,
AddressRepository $addressRepository
) {
$this->addressFactory = $addressFactory;
$this->urlBuilder = $urlBuilder;
$this->addressResourceModel = $addressResourceModel;
$this->request = $request;
$this->addressRepository = $addressRepository;
}
/**
* Return address Id.
*
* @return int|null
*/
public function getAddressId()
{
$address = $this->addressFactory->create();
$entityId = $this->request->getParam('entity_id');
$this->addressResourceModel->load(
$address,
$entityId
);
return $address->getEntityId() ?: null;
}
/**
* Get customer id.
*
* @return int|null
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function getCustomerId()
{
$addressId = $this->request->getParam('entity_id');
$address = $this->addressRepository->getById($addressId);
return $address->getCustomerId() ?: null;
}
/**
* Generate url by route and parameters
*
* @param string $route
* @param array $params
* @return string
*/
public function getUrl($route = '', array $params = []): string
{
return $this->urlBuilder->getUrl($route, $params);
}
}