Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ClassModelRegistry.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Tax\Model;
8 
10 use Magento\Tax\Model\ClassModel as TaxClassModel;
11 use Magento\Tax\Model\ClassModelFactory as TaxClassModelFactory;
12 
17 {
23  private $taxClassModelFactory;
24 
30  private $taxClassRegistryById = [];
31 
37  public function __construct(TaxClassModelFactory $taxClassModelFactory)
38  {
39  $this->taxClassModelFactory = $taxClassModelFactory;
40  }
41 
48  public function registerTaxClass(TaxClassModel $taxClassModel)
49  {
50  $this->taxClassRegistryById[$taxClassModel->getId()] = $taxClassModel;
51  }
52 
60  public function retrieve($taxClassId)
61  {
62  if (isset($this->taxClassRegistryById[$taxClassId])) {
63  return $this->taxClassRegistryById[$taxClassId];
64  }
66  $taxClassModel = $this->taxClassModelFactory->create()->load($taxClassId);
67  if (!$taxClassModel->getId()) {
68  // tax class does not exist
69  throw NoSuchEntityException::singleField(TaxClassModel::KEY_ID, $taxClassId);
70  }
71  $this->taxClassRegistryById[$taxClassModel->getId()] = $taxClassModel;
72  return $taxClassModel;
73  }
74 
81  public function remove($taxClassId)
82  {
83  unset($this->taxClassRegistryById[$taxClassId]);
84  }
85 }
__construct(TaxClassModelFactory $taxClassModelFactory)
registerTaxClass(TaxClassModel $taxClassModel)