From febb26592688f7e2f8a0d38b83c76818e624d0bc Mon Sep 17 00:00:00 2001 From: Leon Helmus Date: Thu, 16 Mar 2023 15:50:23 +0100 Subject: [PATCH] Use constructor property promotion in module Sales Rule Replace allmost all properties with constructor property promotion in module Sales rule: https://stitcher.io/blog/constructor-promotion-in-php-8 * Readable code * Make Magento less complex by removing properties which take up a lot of lines. * Imported all classes to make code more readable. I think the code would be a lot cleaner if all modules start using constructor promotions, since of 2.4.6 php 7.4 is dropped we can now make use of it. So let's start on it right now. --- .../SalesRule/Block/Adminhtml/Promo/Quote.php | 4 +- .../Promo/Quote/Edit/GenericButton.php | 27 ++- .../Promo/Quote/Edit/Tab/Actions.php | 67 ++++--- .../Promo/Quote/Edit/Tab/Conditions.php | 58 +++--- .../Promo/Quote/Edit/Tab/Coupons.php | 5 +- .../Promo/Quote/Edit/Tab/Coupons/Form.php | 36 ++-- .../Promo/Quote/Edit/Tab/Coupons/Grid.php | 39 ++-- .../Tab/Coupons/Grid/Column/Renderer/Used.php | 9 +- .../Adminhtml/Promo/Quote/Edit/Tab/Labels.php | 42 +++-- .../Block/Adminhtml/Promo/Widget/Chooser.php | 35 ++-- .../Magento/SalesRule/Block/Rss/Discounts.php | 40 ++-- .../Block/Widget/Form/Element/Dependence.php | 19 +- .../Controller/Adminhtml/Promo/Quote.php | 38 ++-- .../Adminhtml/Promo/Quote/ApplyRules.php | 4 +- .../Adminhtml/Promo/Quote/Chooser.php | 7 +- .../Adminhtml/Promo/Quote/CouponsGrid.php | 4 +- .../Promo/Quote/CouponsMassDelete.php | 10 +- .../Adminhtml/Promo/Quote/Delete.php | 15 +- .../Controller/Adminhtml/Promo/Quote/Edit.php | 43 +++-- .../Adminhtml/Promo/Quote/Generate.php | 76 ++++---- .../Adminhtml/Promo/Quote/Index.php | 3 +- .../Adminhtml/Promo/Quote/NewAction.php | 3 +- .../Promo/Quote/NewConditionHtml.php | 3 +- .../Controller/Adminhtml/Promo/Quote/Save.php | 70 +++---- .../Adminhtml/Promo/Widget/CategoriesJson.php | 4 +- .../Adminhtml/Promo/Widget/Chooser.php | 4 +- .../Cron/AggregateSalesReportCouponsData.php | 22 ++- .../SalesRule/Helper/CartFixedDiscount.php | 32 +--- app/code/Magento/SalesRule/Helper/Coupon.php | 20 +- .../SalesRule/Model/Converter/ToDataModel.php | 85 +++------ .../SalesRule/Model/Converter/ToModel.php | 65 +++---- app/code/Magento/SalesRule/Model/Coupon.php | 16 +- .../Model/Coupon/CaptchaConfigProvider.php | 19 +- .../Model/Coupon/CodeLimitManager.php | 56 +----- .../SalesRule/Model/Coupon/Codegenerator.php | 4 +- .../SalesRule/Model/Coupon/Consumer.php | 35 +--- .../SalesRule/Model/Coupon/Massgenerator.php | 89 ++++----- .../Model/Coupon/Quote/UpdateCouponUsages.php | 16 +- .../Model/Coupon/UpdateCouponUsages.php | 16 +- .../Model/Coupon/Usage/Processor.php | 35 +--- .../SalesRule/Model/CouponGenerator.php | 21 +-- .../SalesRule/Model/CouponRepository.php | 133 ++++++------- .../SalesRule/Model/CouponUsageConsumer.php | 45 +---- .../SalesRule/Model/Data/Condition.php | 11 +- .../Model/Data/CouponGenerationSpec.php | 13 +- .../Model/Data/CouponMassDeleteResult.php | 6 +- .../SalesRule/Model/Data/DiscountData.php | 3 +- .../SalesRule/Model/Data/RuleDiscount.php | 3 +- .../SalesRule/Model/Data/RuleLabel.php | 13 +- .../SalesRule/Model/DeltaPriceRound.php | 11 +- .../Plugin/QuoteConfigProductAttributes.php | 11 +- .../Model/Plugin/ResourceModel/Rule.php | 32 ++-- .../Magento/SalesRule/Model/Plugin/Rule.php | 13 +- .../Consumer/RuleQuoteRecollectTotals.php | 35 +--- .../Quote/Address/Total/ShippingDiscount.php | 18 +- .../Model/Quote/ChildrenValidationLocator.php | 8 +- .../SalesRule/Model/Quote/Discount.php | 51 +---- .../SalesRule/Model/ResourceModel/Coupon.php | 22 ++- .../Model/ResourceModel/Coupon/Collection.php | 4 +- .../Model/ResourceModel/Coupon/Usage.php | 12 +- .../Model/ResourceModel/ReadHandler.php | 19 +- .../Model/ResourceModel/Report/Collection.php | 42 +++-- .../Model/ResourceModel/Report/Rule.php | 54 +++--- .../ResourceModel/Report/Rule/Createdat.php | 12 +- .../ResourceModel/Report/Rule/Updatedat.php | 2 +- .../Report/Updatedat/Collection.php | 4 +- .../SalesRule/Model/ResourceModel/Rule.php | 71 ++++--- .../Model/ResourceModel/Rule/Collection.php | 77 ++++---- .../Model/ResourceModel/Rule/Customer.php | 7 +- .../Rule/Customer/Collection.php | 10 +- .../Model/ResourceModel/Rule/DateApplier.php | 4 +- .../ResourceModel/Rule/Quote/Collection.php | 4 +- .../Model/ResourceModel/SaveHandler.php | 19 +- .../Magento/SalesRule/Model/Rss/Discounts.php | 31 ++- app/code/Magento/SalesRule/Model/Rule.php | 176 ++++++++++-------- .../Model/Rule/Action/Collection.php | 25 ++- .../Rule/Action/Discount/AbstractDiscount.php | 39 ++-- .../Model/Rule/Action/Discount/ByFixed.php | 14 +- .../Model/Rule/Action/Discount/ByPercent.php | 16 +- .../Action/Discount/CalculatorFactory.php | 40 ++-- .../Model/Rule/Action/Discount/CartFixed.php | 8 +- .../Model/Rule/Action/Discount/ToFixed.php | 12 +- .../Model/Rule/Action/Discount/ToPercent.php | 7 +- .../SalesRule/Model/Rule/Action/Product.php | 4 +- .../Model/Rule/Condition/Address.php | 45 +++-- .../Model/Rule/Condition/Combine.php | 37 ++-- .../Model/Rule/Condition/Product.php | 25 ++- .../Model/Rule/Condition/Product/Combine.php | 37 ++-- .../Model/Rule/Condition/Product/Found.php | 22 ++- .../Rule/Condition/Product/Subselect.php | 23 ++- .../Magento/SalesRule/Model/Rule/Customer.php | 13 +- .../SalesRule/Model/Rule/DataProvider.php | 32 ++-- .../Model/Rule/Metadata/ValueProvider.php | 47 +---- .../Model/Rule/QuoteResetAppliedRules.php | 3 +- .../Rule/RuleQuoteRecollectTotalsAsync.php | 40 +--- .../Rule/RuleQuoteRecollectTotalsOnDemand.php | 11 +- .../SalesRule/Model/RuleRepository.php | 130 +++++-------- .../Magento/SalesRule/Model/RulesApplier.php | 55 ++---- .../Model/Service/CouponManagementService.php | 133 +++++-------- .../Model/Service/CouponUsagePublisher.php | 34 +--- .../System/Config/Source/Coupon/Format.php | 14 +- app/code/Magento/SalesRule/Model/Utility.php | 84 +++------ .../Magento/SalesRule/Model/Validator.php | 93 ++++----- .../SalesRule/Model/Validator/Pool.php | 11 +- .../AddSalesRuleNameToOrderObserver.php | 17 +- ...onDataAfterOrderCustomerAssignObserver.php | 8 +- .../CatalogAttributeDeleteAfterObserver.php | 8 +- .../CatalogAttributeSaveAfterObserver.php | 8 +- .../Observer/CheckSalesRulesAvailability.php | 35 ++-- .../Observer/CouponCodeValidation.php | 24 +-- .../Observer/CouponUsagesDecrement.php | 11 +- .../QuoteResetAppliedRulesObserver.php | 11 +- .../RuleQuoteRecollectTotalsObserver.php | 11 +- .../SalesRule/Plugin/CartTotalRepository.php | 56 ++---- .../Plugin/CouponUsagesDecrement.php | 16 +- .../Plugin/CouponUsagesIncrement.php | 19 +- .../Data/ConvertSerializedDataToJson.php | 46 ++--- .../FillSalesRuleProductAttributeTable.php | 61 ++---- .../Data/PrepareRuleModelSerializedData.php | 17 +- app/code/Magento/SalesRule/registration.php | 6 +- 120 files changed, 1555 insertions(+), 2025 deletions(-) diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote.php index 21bcbd475e7fb..744fb85b93515 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote.php @@ -5,6 +5,8 @@ */ namespace Magento\SalesRule\Block\Adminhtml\Promo; +use Magento\Backend\Block\Widget\Grid\Container; + /** * Catalog price rules * @@ -12,7 +14,7 @@ * @author Magento Core Team * @since 100.0.2 */ -class Quote extends \Magento\Backend\Block\Widget\Grid\Container +class Quote extends Container { /** * Constructor diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/GenericButton.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/GenericButton.php index 92b5108369881..e0a249f1ad93e 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/GenericButton.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/GenericButton.php @@ -6,6 +6,9 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit; +use Magento\Backend\Block\Widget\Context as WidgetContext; +use Magento\Framework\Registry; +use Magento\Framework\UrlInterface; use Magento\SalesRule\Model\RegistryConstants; class GenericButton @@ -13,29 +16,21 @@ class GenericButton /** * Url Builder * - * @var \Magento\Framework\UrlInterface + * @var UrlInterface */ protected $urlBuilder; - /** - * Registry - * - * @var \Magento\Framework\Registry - */ - protected $registry; - /** * Constructor * - * @param \Magento\Backend\Block\Widget\Context $context - * @param \Magento\Framework\Registry $registry + * @param WidgetContext $context + * @param Registry $registry Registry */ public function __construct( - \Magento\Backend\Block\Widget\Context $context, - \Magento\Framework\Registry $registry + WidgetContext $context, + protected readonly Registry $registry ) { $this->urlBuilder = $context->getUrlBuilder(); - $this->registry = $registry; } /** @@ -52,9 +47,9 @@ public function getRuleId() /** * Generate url by route and parameters * - * @param string $route - * @param array $params - * @return string + * @param string $route + * @param array $params + * @return string */ public function getUrl($route = '', $params = []) { diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php index 5f6b3fad39b55..65d0b78b4de97 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php @@ -5,8 +5,20 @@ */ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab; +use Magento\Backend\Block\Template\Context as TemplateContext; use Magento\Backend\Block\Widget\Form\Renderer\Fieldset; +use Magento\Backend\Block\Widget\Form\Renderer\Fieldset as RendererFieldset; +use Magento\Config\Model\Config\Source\Yesno; use Magento\Framework\App\ObjectManager; +use Magento\Framework\Data\Form as FormData; +use Magento\Framework\Data\FormFactory; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Registry; +use Magento\Rule\Block\Actions as BlockActions; +use Magento\Rule\Model\Condition\AbstractCondition; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\RuleFactory; class Actions extends \Magento\Backend\Block\Widget\Form\Generic implements \Magento\Ui\Component\Layout\Tabs\TabInterface @@ -14,17 +26,17 @@ class Actions extends \Magento\Backend\Block\Widget\Form\Generic implements /** * Core registry * - * @var \Magento\Backend\Block\Widget\Form\Renderer\Fieldset + * @var RendererFieldset */ protected $_rendererFieldset; /** - * @var \Magento\Rule\Block\Actions + * @var BlockActions */ protected $_ruleActions; /** - * @var \Magento\Config\Model\Config\Source\Yesno + * @var Yesno * @deprecated 100.1.0 */ protected $_sourceYesno; @@ -34,38 +46,33 @@ class Actions extends \Magento\Backend\Block\Widget\Form\Generic implements */ protected $_nameInLayout = 'actions_apply_to'; - /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - private $ruleFactory; - /** * Constructor * - * @param \Magento\Backend\Block\Template\Context $context - * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Data\FormFactory $formFactory - * @param \Magento\Config\Model\Config\Source\Yesno $sourceYesno - * @param \Magento\Rule\Block\Actions $ruleActions - * @param \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset + * @param TemplateContext $context + * @param Registry $registry + * @param FormFactory $formFactory + * @param Yesno $sourceYesno + * @param BlockActions $ruleActions + * @param RendererFieldset $rendererFieldset * @param array $data - * @param \Magento\SalesRule\Model\RuleFactory|null $ruleFactory + * @param RuleFactory|null $ruleFactory */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - \Magento\Framework\Registry $registry, - \Magento\Framework\Data\FormFactory $formFactory, - \Magento\Config\Model\Config\Source\Yesno $sourceYesno, - \Magento\Rule\Block\Actions $ruleActions, - \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset, + TemplateContext $context, + Registry $registry, + FormFactory $formFactory, + Yesno $sourceYesno, + BlockActions $ruleActions, + RendererFieldset $rendererFieldset, array $data = [], - \Magento\SalesRule\Model\RuleFactory $ruleFactory = null + private ?RuleFactory $ruleFactory = null ) { $this->_rendererFieldset = $rendererFieldset; $this->_ruleActions = $ruleActions; $this->_sourceYesno = $sourceYesno; $this->ruleFactory = $ruleFactory ?: ObjectManager::getInstance() - ->get(\Magento\SalesRule\Model\RuleFactory::class); + ->get(RuleFactory::class); parent::__construct($context, $registry, $formFactory, $data); } @@ -132,7 +139,7 @@ public function isHidden() */ protected function _prepareForm() { - $model = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $model = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); $form = $this->addTabToForm($model); $this->setForm($form); @@ -142,11 +149,11 @@ protected function _prepareForm() /** * Handles addition of actions tab to supplied form. * - * @param \Magento\SalesRule\Model\Rule $model + * @param Rule $model * @param string $fieldsetId * @param string $formName - * @return \Magento\Framework\Data\Form - * @throws \Magento\Framework\Exception\LocalizedException + * @return FormData + * @throws LocalizedException */ protected function addTabToForm($model, $fieldsetId = 'actions_fieldset', $formName = 'sales_rule_form') { @@ -163,7 +170,7 @@ protected function addTabToForm($model, $fieldsetId = 'actions_fieldset', $formN ['form_namespace' => $formName] ); - /** @var \Magento\Framework\Data\Form $form */ + /** @var FormData $form */ $form = $this->_formFactory->create(); $form->setHtmlIdPrefix('rule_'); @@ -221,11 +228,11 @@ protected function addTabToForm($model, $fieldsetId = 'actions_fieldset', $formN /** * Handles addition of form name to action and its actions. * - * @param \Magento\Rule\Model\Condition\AbstractCondition $actions + * @param AbstractCondition $actions * @param string $formName * @return void */ - private function setActionFormName(\Magento\Rule\Model\Condition\AbstractCondition $actions, $formName) + private function setActionFormName(AbstractCondition $actions, $formName) { $actions->setFormName($formName); if ($actions->getActions() && is_array($actions->getActions())) { diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php index e1ed56f4b32ff..de5f9c4b06cea 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php @@ -7,27 +7,37 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab; +use Magento\Backend\Block\Template\Context as TemplateContext; +use Magento\Backend\Block\Widget\Form\Generic; use Magento\Framework\App\ObjectManager; use Magento\Backend\Block\Widget\Form\Renderer\Fieldset; +use Magento\Framework\Data\Form as FormData; +use Magento\Framework\Data\FormFactory; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Registry; +use Magento\Rule\Block\Conditions as BlockConditions; +use Magento\Rule\Model\Condition\AbstractCondition; +use Magento\SalesRule\Model\RegistryConstants; use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\RuleFactory; +use Magento\Ui\Component\Layout\Tabs\TabInterface; /** * Block for rendering Conditions tab on Sales Rules creation page. * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Conditions extends \Magento\Backend\Block\Widget\Form\Generic implements - \Magento\Ui\Component\Layout\Tabs\TabInterface +class Conditions extends Generic implements TabInterface { /** * Core registry * - * @var \Magento\Backend\Block\Widget\Form\Renderer\Fieldset + * @var Fieldset */ protected $_rendererFieldset; /** - * @var \Magento\Rule\Block\Conditions + * @var BlockConditions */ protected $_conditions; @@ -37,32 +47,32 @@ class Conditions extends \Magento\Backend\Block\Widget\Form\Generic implements protected $_nameInLayout = 'conditions_apply_to'; /** - * @var \Magento\SalesRule\Model\RuleFactory + * @var RuleFactory */ private $ruleFactory; /** - * @param \Magento\Backend\Block\Template\Context $context - * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Data\FormFactory $formFactory - * @param \Magento\Rule\Block\Conditions $conditions - * @param \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset + * @param TemplateContext $context + * @param Registry $registry + * @param FormFactory $formFactory + * @param BlockConditions $conditions + * @param Fieldset $rendererFieldset * @param array $data - * @param \Magento\SalesRule\Model\RuleFactory|null $ruleFactory + * @param RuleFactory|null $ruleFactory */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - \Magento\Framework\Registry $registry, - \Magento\Framework\Data\FormFactory $formFactory, - \Magento\Rule\Block\Conditions $conditions, - \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset, + TemplateContext $context, + Registry $registry, + FormFactory $formFactory, + BlockConditions $conditions, + Fieldset $rendererFieldset, array $data = [], - \Magento\SalesRule\Model\RuleFactory $ruleFactory = null + RuleFactory $ruleFactory = null ) { $this->_rendererFieldset = $rendererFieldset; $this->_conditions = $conditions; $this->ruleFactory = $ruleFactory ?: ObjectManager::getInstance() - ->get(\Magento\SalesRule\Model\RuleFactory::class); + ->get(RuleFactory::class); parent::__construct($context, $registry, $formFactory, $data); } @@ -131,7 +141,7 @@ public function isHidden() */ protected function _prepareForm() { - $model = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $model = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); $form = $this->addTabToForm($model); $this->setForm($form); @@ -144,8 +154,8 @@ protected function _prepareForm() * @param Rule $model * @param string $fieldsetId * @param string $formName - * @return \Magento\Framework\Data\Form - * @throws \Magento\Framework\Exception\LocalizedException + * @return FormData + * @throws LocalizedException */ protected function addTabToForm($model, $fieldsetId = 'conditions_fieldset', $formName = 'sales_rule_form') { @@ -160,7 +170,7 @@ protected function addTabToForm($model, $fieldsetId = 'conditions_fieldset', $fo ['form_namespace' => $formName] ); - /** @var \Magento\Framework\Data\Form $form */ + /** @var FormData $form */ $form = $this->_formFactory->create(); $form->setHtmlIdPrefix('rule_'); @@ -207,11 +217,11 @@ protected function addTabToForm($model, $fieldsetId = 'conditions_fieldset', $fo /** * Handles addition of form name to condition and its conditions. * - * @param \Magento\Rule\Model\Condition\AbstractCondition $conditions + * @param AbstractCondition $conditions * @param string $formName * @return void */ - private function setConditionFormName(\Magento\Rule\Model\Condition\AbstractCondition $conditions, $formName) + private function setConditionFormName(AbstractCondition $conditions, $formName) { $conditions->setFormName($formName); if ($conditions->getConditions() && is_array($conditions->getConditions())) { diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons.php index 2d80084d35efe..7f288803f91f6 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons.php @@ -5,12 +5,15 @@ */ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab; +use Magento\Backend\Block\Widget\Tab\TabInterface; +use Magento\Framework\View\Element\Template; + /** * "Manage Coupons Codes" Tab * * @author Magento Core Team */ -class Coupons extends \Magento\Framework\View\Element\Template implements \Magento\Backend\Block\Widget\Tab\TabInterface +class Coupons extends Template implements TabInterface { /** * {@inheritdoc} diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Form.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Form.php index 0a88459d138e6..983030dc61c2c 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Form.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Form.php @@ -7,6 +7,14 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons; +use Magento\Backend\Block\Template\Context as TemplateContext; +use Magento\Backend\Block\Widget\Form\Generic as FormGeneric; +use Magento\Framework\Data\Form as FormData; +use Magento\Framework\Data\FormFactory; +use Magento\Framework\Registry; +use Magento\SalesRule\Helper\Coupon as CouponHelper; +use Magento\SalesRule\Model\RegistryConstants; + /** * Coupons generation parameters form * @@ -14,27 +22,27 @@ * * Class \Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Form */ -class Form extends \Magento\Backend\Block\Widget\Form\Generic +class Form extends FormGeneric { /** * Sales rule coupon * - * @var \Magento\SalesRule\Helper\Coupon + * @var CouponHelper */ protected $_salesRuleCoupon = null; /** - * @param \Magento\Backend\Block\Template\Context $context - * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Data\FormFactory $formFactory - * @param \Magento\SalesRule\Helper\Coupon $salesRuleCoupon + * @param TemplateContext $context + * @param Registry $registry + * @param FormFactory $formFactory + * @param CouponHelper $salesRuleCoupon * @param array $data */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - \Magento\Framework\Registry $registry, - \Magento\Framework\Data\FormFactory $formFactory, - \Magento\SalesRule\Helper\Coupon $salesRuleCoupon, + TemplateContext $context, + Registry $registry, + FormFactory $formFactory, + CouponHelper $salesRuleCoupon, array $data = [] ) { $this->_salesRuleCoupon = $salesRuleCoupon; @@ -49,15 +57,13 @@ public function __construct( */ protected function _prepareForm() { - /** @var \Magento\Framework\Data\Form $form */ + /** @var FormData $form */ $form = $this->_formFactory->create(); - /** - * @var \Magento\SalesRule\Helper\Coupon $couponHelper - */ + /** @var CouponHelper $couponHelper */ $couponHelper = $this->_salesRuleCoupon; - $model = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $model = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); $ruleId = $model->getId(); $form->setHtmlIdPrefix('coupons_'); diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid.php index b021b3e539a9d..8a54481917ac8 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid.php @@ -6,38 +6,47 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons; +use Magento\Backend\Block\Template\Context as TemplateContext; +use Magento\Backend\Block\Widget\Grid\Extended as GridExtended; +use Magento\Backend\Helper\Data as BackendHelper; +use Magento\Framework\Registry; +use Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Grid\Column\Renderer\Used as GridColumnRendererUsed; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\ResourceModel\Coupon\Collection as CouponCollection; +use Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory as CouponCollectionFactory; + /** * Coupon codes grid * * @api * @since 100.0.2 */ -class Grid extends \Magento\Backend\Block\Widget\Grid\Extended +class Grid extends GridExtended { /** * Core registry * - * @var \Magento\Framework\Registry + * @var Registry */ protected $_coreRegistry = null; /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory + * @var CouponCollectionFactory */ protected $_salesRuleCoupon; /** - * @param \Magento\Backend\Block\Template\Context $context - * @param \Magento\Backend\Helper\Data $backendHelper - * @param \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory $salesRuleCoupon - * @param \Magento\Framework\Registry $coreRegistry + * @param TemplateContext $context + * @param BackendHelper $backendHelper + * @param CouponCollectionFactory $salesRuleCoupon + * @param Registry $coreRegistry * @param array $data */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - \Magento\Backend\Helper\Data $backendHelper, - \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory $salesRuleCoupon, - \Magento\Framework\Registry $coreRegistry, + TemplateContext $context, + BackendHelper $backendHelper, + CouponCollectionFactory $salesRuleCoupon, + Registry $coreRegistry, array $data = [] ) { $this->_coreRegistry = $coreRegistry; @@ -60,11 +69,9 @@ protected function _construct() */ protected function _prepareCollection() { - $priceRule = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $priceRule = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); - /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon\Collection $collection - */ + /** @var CouponCollection $collection */ $collection = $this->_salesRuleCoupon->create()->addRuleToFilter($priceRule)->addGeneratedCouponsFilter(); if ($this->_isExport && $this->getMassactionBlock()->isAvailable()) { @@ -106,7 +113,7 @@ protected function _prepareColumns() 'type' => 'options', 'options' => [__('No'), __('Yes')], 'renderer' => - \Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Grid\Column\Renderer\Used::class, + GridColumnRendererUsed::class, 'filter_condition_callback' => [$this->_salesRuleCoupon->create(), 'addIsUsedFilterCallback'] ] ); diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid/Column/Renderer/Used.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid/Column/Renderer/Used.php index e17bb7c304663..39f1e0b9d01bc 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid/Column/Renderer/Used.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Coupons/Grid/Column/Renderer/Used.php @@ -5,18 +5,21 @@ */ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Grid\Column\Renderer; +use Magento\Backend\Block\Widget\Grid\Column\Renderer\Text; +use Magento\Framework\DataObject; + /** * Coupon codes grid "Used" column renderer * * @author Magento Core Team */ -class Used extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Text +class Used extends Text { /** - * @param \Magento\Framework\DataObject $row + * @param DataObject $row * @return string */ - public function render(\Magento\Framework\DataObject $row) + public function render(DataObject $row) { $value = (int)$row->getData($this->getColumn()->getIndex()); return empty($value) ? __('No') : __('Yes'); diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Labels.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Labels.php index cbf7c66ab72c8..e139e1d7765a3 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Labels.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Labels.php @@ -5,28 +5,38 @@ */ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab; -class Labels extends \Magento\Backend\Block\Widget\Form\Generic implements - \Magento\Ui\Component\Layout\Tabs\TabInterface +use Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset as FormRendererFieldset; +use Magento\Backend\Block\Template\Context as TemplateContext; +use Magento\Backend\Block\Widget\Form\Generic; +use Magento\Framework\Data\Form as FormData; +use Magento\Framework\Data\Form\Element\Fieldset; +use Magento\Framework\Data\FormFactory; +use Magento\Framework\Registry; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\RuleFactory; +use Magento\Ui\Component\Layout\Tabs\TabInterface; + +class Labels extends Generic implements TabInterface { /** - * @var \Magento\SalesRule\Model\RuleFactory + * @var RuleFactory */ private $ruleFactory; /** * Initialize dependencies. * - * @param \Magento\Backend\Block\Template\Context $context - * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Data\FormFactory $formFactory - * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory + * @param TemplateContext $context + * @param Registry $registry + * @param FormFactory $formFactory + * @param RuleFactory $ruleFactory * @param array $data */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - \Magento\Framework\Registry $registry, - \Magento\Framework\Data\FormFactory $formFactory, - \Magento\SalesRule\Model\RuleFactory $ruleFactory, + TemplateContext $context, + Registry $registry, + FormFactory $formFactory, + RuleFactory $ruleFactory, array $data = [] ) { $this->ruleFactory = $ruleFactory; @@ -108,7 +118,7 @@ public function isHidden() */ protected function _prepareForm() { - $rule = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $rule = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); if (!$rule) { $id = $this->getRequest()->getParam('id'); @@ -116,7 +126,7 @@ protected function _prepareForm() $rule->load($id); } - /** @var \Magento\Framework\Data\Form $form */ + /** @var FormData $form */ $form = $this->_formFactory->create(); $form->setHtmlIdPrefix('rule_'); @@ -138,9 +148,9 @@ protected function _prepareForm() /** * Create store specific fieldset * - * @param \Magento\Framework\Data\Form $form + * @param FormData $form * @param array $labels - * @return \Magento\Framework\Data\Form\Element\Fieldset + * @return Fieldset */ protected function _createStoreSpecificFieldset($form, $labels) { @@ -149,7 +159,7 @@ protected function _createStoreSpecificFieldset($form, $labels) ['legend' => __('Store View Specific Labels'), 'class' => 'store-scope'] ); $renderer = $this->getLayout()->createBlock( - \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset::class + FormRendererFieldset::class ); $fieldset->setRenderer($renderer); diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php index 901866d52f73f..57b4f91ac6e84 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Widget/Chooser.php @@ -6,29 +6,30 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Widget; +use Magento\Backend\Block\Template\Context as TemplateContext; +use Magento\Backend\Block\Widget\Grid\Extended as GridExtended; +use Magento\Backend\Helper\Data as BackendHelper; +use Magento\Framework\Data\Form\Element\AbstractElement; +use Magento\SalesRule\Model\RuleFactory; +use Magento\Widget\Block\Adminhtml\Widget\Chooser as WidgetChooser; + /** * Widget that allows to select a sales rule. */ -class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended +class Chooser extends GridExtended { /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - protected $ruleFactory; - - /** - * @param \Magento\Backend\Block\Template\Context $context - * @param \Magento\Backend\Helper\Data $backendHelper - * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory + * @param TemplateContext $context + * @param BackendHelper $backendHelper + * @param RuleFactory $ruleFactory * @param array $data */ public function __construct( - \Magento\Backend\Block\Template\Context $context, - \Magento\Backend\Helper\Data $backendHelper, - \Magento\SalesRule\Model\RuleFactory $ruleFactory, + TemplateContext $context, + BackendHelper $backendHelper, + protected readonly RuleFactory $ruleFactory, array $data = [] ) { - $this->ruleFactory = $ruleFactory; parent::__construct($context, $backendHelper, $data); } @@ -66,16 +67,16 @@ protected function _prepareCollection() /** * Prepare chooser element HTML * - * @param \Magento\Framework\Data\Form\Element\AbstractElement $element Form Element - * @return \Magento\Framework\Data\Form\Element\AbstractElement + * @param AbstractElement $element Form Element + * @return AbstractElement */ - public function prepareElementHtml(\Magento\Framework\Data\Form\Element\AbstractElement $element) + public function prepareElementHtml(AbstractElement $element) { $uniqId = $this->mathRandom->getUniqueHash($element->getId()); $sourceUrl = $this->getUrl('sales_rule/promo_quote/chooser', ['uniq_id' => $uniqId]); $chooser = $this->getLayout()->createBlock( - \Magento\Widget\Block\Adminhtml\Widget\Chooser::class + WidgetChooser::class )->setElement( $element )->setConfig( diff --git a/app/code/Magento/SalesRule/Block/Rss/Discounts.php b/app/code/Magento/SalesRule/Block/Rss/Discounts.php index efc52f87fa182..6e31b28f71260 100644 --- a/app/code/Magento/SalesRule/Block/Rss/Discounts.php +++ b/app/code/Magento/SalesRule/Block/Rss/Discounts.php @@ -6,51 +6,45 @@ namespace Magento\SalesRule\Block\Rss; use Magento\Customer\Model\Context; +use Magento\Framework\App\Http\Context as HttpContext; use Magento\Framework\App\Rss\DataProviderInterface; +use Magento\Framework\App\Rss\UrlBuilderInterface as RssUrlBuilderInterface; +use Magento\Framework\View\Element\AbstractBlock; +use Magento\Framework\View\Element\Template\Context as TemplateContext; +use Magento\SalesRule\Model\Rss\Discounts as RssModel; +use Magento\Store\Model\StoreManagerInterface; /** * Review form block */ -class Discounts extends \Magento\Framework\View\Element\AbstractBlock implements DataProviderInterface +class Discounts extends AbstractBlock implements DataProviderInterface { /** - * @var \Magento\Store\Model\StoreManagerInterface + * @var StoreManagerInterface */ protected $storeManager; /** - * @var \Magento\SalesRule\Model\Rss\Discounts - */ - protected $rssModel; - - /** - * @var \Magento\Framework\App\Http\Context + * @var HttpContext */ protected $httpContext; /** - * @var \Magento\Framework\App\Rss\UrlBuilderInterface - */ - private $rssUrlBuilder; - - /** - * @param \Magento\Framework\View\Element\Template\Context $context - * @param \Magento\Framework\App\Http\Context $httpContext - * @param \Magento\SalesRule\Model\Rss\Discounts $rssModel - * @param \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder + * @param TemplateContext $context + * @param HttpContext $httpContext + * @param RssModel $rssModel + * @param RssUrlBuilderInterface $rssUrlBuilder * @param array $data */ public function __construct( - \Magento\Framework\View\Element\Template\Context $context, - \Magento\Framework\App\Http\Context $httpContext, - \Magento\SalesRule\Model\Rss\Discounts $rssModel, - \Magento\Framework\App\Rss\UrlBuilderInterface $rssUrlBuilder, + TemplateContext $context, + HttpContext $httpContext, + protected readonly RssModel $rssModel, + private readonly RssUrlBuilderInterface $rssUrlBuilder, array $data = [] ) { $this->storeManager = $context->getStoreManager(); - $this->rssModel = $rssModel; $this->httpContext = $httpContext; - $this->rssUrlBuilder = $rssUrlBuilder; parent::__construct($context, $data); } diff --git a/app/code/Magento/SalesRule/Block/Widget/Form/Element/Dependence.php b/app/code/Magento/SalesRule/Block/Widget/Form/Element/Dependence.php index 526236955e6a4..b7785e3c294ec 100644 --- a/app/code/Magento/SalesRule/Block/Widget/Form/Element/Dependence.php +++ b/app/code/Magento/SalesRule/Block/Widget/Form/Element/Dependence.php @@ -5,23 +5,28 @@ */ namespace Magento\SalesRule\Block\Widget\Form\Element; +use Magento\Backend\Block\Context; +use Magento\Backend\Block\Widget\Form\Element\Dependence as FormElementDependence; +use Magento\Config\Model\Config\Structure\Element\Dependency\FieldFactory; +use Magento\Framework\Json\EncoderInterface; + /** * Form element dependencies mapper * Assumes that one element may depend on other element values. * Will toggle as "enabled" only if all elements it depends from toggle as true. */ -class Dependence extends \Magento\Backend\Block\Widget\Form\Element\Dependence +class Dependence extends FormElementDependence { /** - * @param \Magento\Backend\Block\Context $context - * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder - * @param \Magento\Config\Model\Config\Structure\Element\Dependency\FieldFactory $fieldFactory + * @param Context $context + * @param EncoderInterface $jsonEncoder + * @param FieldFactory $fieldFactory * @param array $data */ public function __construct( - \Magento\Backend\Block\Context $context, - \Magento\Framework\Json\EncoderInterface $jsonEncoder, - \Magento\Config\Model\Config\Structure\Element\Dependency\FieldFactory $fieldFactory, + Context $context, + EncoderInterface $jsonEncoder, + FieldFactory $fieldFactory, array $data = [] ) { parent::__construct($context, $jsonEncoder, $fieldFactory, $data); diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php index 55e1d319cc776..aef3cb1614b35 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php @@ -5,7 +5,15 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo; -abstract class Quote extends \Magento\Backend\App\Action +use Magento\Backend\App\Action; +use Magento\Backend\App\Action\Context as ActionContext; +use Magento\Framework\App\Response\Http\FileFactory; +use Magento\Framework\Registry; +use Magento\Framework\Stdlib\DateTime\Filter\Date as DateFilter; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\Rule; + +abstract class Quote extends Action { /** * Authorization level of a basic admin session @@ -17,31 +25,31 @@ abstract class Quote extends \Magento\Backend\App\Action /** * Core registry * - * @var \Magento\Framework\Registry + * @var Registry */ protected $_coreRegistry = null; /** - * @var \Magento\Framework\App\Response\Http\FileFactory + * @var FileFactory */ protected $_fileFactory; /** - * @var \Magento\Framework\Stdlib\DateTime\Filter\Date + * @var DateFilter */ protected $_dateFilter; /** - * @param \Magento\Backend\App\Action\Context $context - * @param \Magento\Framework\Registry $coreRegistry - * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory - * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter + * @param ActionContext $context + * @param Registry $coreRegistry + * @param FileFactory $fileFactory + * @param DateFilter $dateFilter */ public function __construct( - \Magento\Backend\App\Action\Context $context, - \Magento\Framework\Registry $coreRegistry, - \Magento\Framework\App\Response\Http\FileFactory $fileFactory, - \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter + ActionContext $context, + Registry $coreRegistry, + FileFactory $fileFactory, + DateFilter $dateFilter ) { parent::__construct($context); $this->_coreRegistry = $coreRegistry; @@ -57,8 +65,8 @@ public function __construct( protected function _initRule() { $this->_coreRegistry->register( - \Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE, - $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class) + RegistryConstants::CURRENT_SALES_RULE, + $this->_objectManager->create(Rule::class) ); $id = (int)$this->getRequest()->getParam('id'); @@ -67,7 +75,7 @@ protected function _initRule() } if ($id) { - $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE)->load($id); + $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE)->load($id); } } diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php index 276d6fbdfdf22..3ec573cedc1f0 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php @@ -6,7 +6,9 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; -class ApplyRules extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; + +class ApplyRules extends AdminhtmlPromoQuote { /** * Apply rules action diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php index a3424a4ac5a5f..14a108a8f72c9 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php @@ -6,7 +6,10 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; -class Chooser extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote +use Magento\SalesRule\Block\Adminhtml\Promo\Widget\Chooser as PromoWidgetChooser; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; + +class Chooser extends AdminhtmlPromoQuote { /** * Chooser source action @@ -17,7 +20,7 @@ public function execute() { $uniqId = $this->getRequest()->getParam('uniq_id'); $chooserBlock = $this->_view->getLayout()->createBlock( - \Magento\SalesRule\Block\Adminhtml\Promo\Widget\Chooser::class, + PromoWidgetChooser::class, '', ['data' => ['id' => $uniqId]] ); diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php index 26bc8725fde83..fb88ecc727a43 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php @@ -6,7 +6,9 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; -class CouponsGrid extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; + +class CouponsGrid extends AdminhtmlPromoQuote { /** * Coupon codes grid diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php index dcbc290f98579..81c172ed80391 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php @@ -6,7 +6,11 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; -class CouponsMassDelete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\ResourceModel\Coupon\Collection as CouponCollection; + +class CouponsMassDelete extends AdminhtmlPromoQuote { /** * Coupons mass delete action @@ -16,7 +20,7 @@ class CouponsMassDelete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Qu public function execute() { $this->_initRule(); - $rule = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $rule = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); if (!$rule->getId()) { $this->_forward('noroute'); @@ -26,7 +30,7 @@ public function execute() if (is_array($codesIds)) { $couponsCollection = $this->_objectManager->create( - \Magento\SalesRule\Model\ResourceModel\Coupon\Collection::class + CouponCollection::class )->addFieldToFilter( 'coupon_id', ['in' => $codesIds] diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php index 45b717fb9bd2d..6e9cef7918a64 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php @@ -6,9 +6,14 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; +use Exception; use Magento\Framework\App\Action\HttpPostActionInterface; +use Magento\Framework\Exception\LocalizedException; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; +use Magento\SalesRule\Model\Rule; +use Psr\Log\LoggerInterface; -class Delete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpPostActionInterface +class Delete extends AdminhtmlPromoQuote implements HttpPostActionInterface { /** * Delete promo quote action @@ -20,19 +25,19 @@ public function execute() $id = $this->getRequest()->getParam('id'); if ($id) { try { - $model = $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class); + $model = $this->_objectManager->create(Rule::class); $model->load($id); $model->delete(); $this->messageManager->addSuccessMessage(__('You deleted the rule.')); $this->_redirect('sales_rule/*/'); return; - } catch (\Magento\Framework\Exception\LocalizedException $e) { + } catch (LocalizedException $e) { $this->messageManager->addErrorMessage($e->getMessage()); - } catch (\Exception $e) { + } catch (Exception $e) { $this->messageManager->addErrorMessage( __('We can\'t delete the rule right now. Please review the log and try again.') ); - $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e); + $this->_objectManager->get(LoggerInterface::class)->critical($e); $this->_redirect('sales_rule/*/edit', ['id' => $this->getRequest()->getParam('id')]); return; } diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php index 3255ee0f2b724..58790ea49783b 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php @@ -6,34 +6,37 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; +use Magento\Backend\App\Action\Context as ActionContext; +use Magento\Backend\Model\Session as BackendSession; use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface; +use Magento\Framework\App\Response\Http\FileFactory; +use Magento\Framework\Registry; +use Magento\Framework\Stdlib\DateTime\Filter\Date as DateFilter; +use Magento\Framework\View\Result\PageFactory; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\Rule; -class Edit extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpGetActionInterface +class Edit extends AdminhtmlPromoQuote implements HttpGetActionInterface { /** - * @var \Magento\Framework\View\Result\PageFactory - */ - protected $resultPageFactory; - - /** - * @param \Magento\Backend\App\Action\Context $context - * @param \Magento\Framework\Registry $coreRegistry - * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory - * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter - * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory + * @param ActionContext $context + * @param Registry $coreRegistry + * @param FileFactory $fileFactory + * @param DateFilter $dateFilter + * @param PageFactory $resultPageFactory */ public function __construct( - \Magento\Backend\App\Action\Context $context, - \Magento\Framework\Registry $coreRegistry, - \Magento\Framework\App\Response\Http\FileFactory $fileFactory, - \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter, - \Magento\Framework\View\Result\PageFactory $resultPageFactory + ActionContext $context, + Registry $coreRegistry, + FileFactory $fileFactory, + DateFilter $dateFilter, + protected readonly PageFactory $resultPageFactory ) { parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter); $this->_coreRegistry = $coreRegistry; $this->_fileFactory = $fileFactory; $this->_dateFilter = $dateFilter; - $this->resultPageFactory = $resultPageFactory; } /** @@ -45,9 +48,9 @@ public function __construct( public function execute() { $id = $this->getRequest()->getParam('id'); - $model = $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class); + $model = $this->_objectManager->create(Rule::class); - $this->_coreRegistry->register(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE, $model); + $this->_coreRegistry->register(RegistryConstants::CURRENT_SALES_RULE, $model); $resultPage = $this->resultPageFactory->create(); if ($id) { @@ -70,7 +73,7 @@ public function execute() } // set entered data if was error when we do save - $data = $this->_objectManager->get(\Magento\Backend\Model\Session::class)->getPageData(true); + $data = $this->_objectManager->get(BackendSession::class)->getPageData(true); if (!empty($data)) { $model->addData($data); } diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php index 76aa50405eb9f..66a0223ed0465 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php @@ -5,72 +5,70 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; +use Exception; +use Magento\Backend\App\Action\Context as ActionContext; use Magento\Framework\App\Action\HttpPostActionInterface; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\App\Response\Http\FileFactory; +use Magento\Framework\Exception\InputException; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Filter\FilterInput; +use Magento\Framework\Json\Helper\Data as JsonHelper; use Magento\Framework\MessageQueue\PublisherInterface; +use Magento\Framework\Registry; +use Magento\Framework\Stdlib\DateTime\Filter\Date as DateFilter; use Magento\SalesRule\Api\Data\CouponGenerationSpecInterfaceFactory; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; use Magento\SalesRule\Model\CouponGenerator; use Magento\SalesRule\Model\Quote\GetCouponCodeLengthInterface; +use Magento\SalesRule\Model\RegistryConstants; +use Magento\SalesRule\Model\Rule as ModelRule; +use Psr\Log\LoggerInterface; /** * Generate promo quote * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Generate extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpPostActionInterface +class Generate extends AdminhtmlPromoQuote implements HttpPostActionInterface { - /** - * @var CouponGenerator - */ - private $couponGenerator; - /** * @var PublisherInterface */ private $messagePublisher; - /** - * @var CouponGenerationSpecInterfaceFactory - */ - private $generationSpecFactory; - - /** - * @var GetCouponCodeLengthInterface - */ - private $getCouponCodeLength; - /** * Generate constructor. - * @param \Magento\Backend\App\Action\Context $context - * @param \Magento\Framework\Registry $coreRegistry - * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory - * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter + * @param ActionContext $context + * @param Registry $coreRegistry + * @param FileFactory $fileFactory + * @param DateFilter $dateFilter * @param CouponGenerator|null $couponGenerator * @param PublisherInterface|null $publisher * @param CouponGenerationSpecInterfaceFactory|null $generationSpecFactory * @param GetCouponCodeLengthInterface|null $getCouponCodeLength */ public function __construct( - \Magento\Backend\App\Action\Context $context, - \Magento\Framework\Registry $coreRegistry, - \Magento\Framework\App\Response\Http\FileFactory $fileFactory, - \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter, - CouponGenerator $couponGenerator = null, + ActionContext $context, + Registry $coreRegistry, + FileFactory $fileFactory, + DateFilter $dateFilter, + private ?CouponGenerator $couponGenerator = null, PublisherInterface $publisher = null, - CouponGenerationSpecInterfaceFactory $generationSpecFactory = null, - GetCouponCodeLengthInterface $getCouponCodeLength = null + private ?CouponGenerationSpecInterfaceFactory $generationSpecFactory = null, + private ?GetCouponCodeLengthInterface $getCouponCodeLength = null ) { parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter); $this->couponGenerator = $couponGenerator ?: $this->_objectManager->get(CouponGenerator::class); - $this->messagePublisher = $publisher ?: \Magento\Framework\App\ObjectManager::getInstance() + $this->messagePublisher = $publisher ?: ObjectManager::getInstance() ->get(PublisherInterface::class); $this->generationSpecFactory = $generationSpecFactory ?: - \Magento\Framework\App\ObjectManager::getInstance()->get( + ObjectManager::getInstance()->get( CouponGenerationSpecInterfaceFactory::class ); $this->getCouponCodeLength = $getCouponCodeLength ?: - \Magento\Framework\App\ObjectManager::getInstance()->get( + ObjectManager::getInstance()->get( GetCouponCodeLengthInterface::class ); } @@ -90,13 +88,13 @@ public function execute() $result = []; $this->_initRule(); - $rule = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $rule = $this->_coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); $data = $this->getRequest()->getParams(); if (!$rule->getId()) { $result['error'] = __('Rule is not defined'); - } elseif ((int) $rule->getCouponType() !== \Magento\SalesRule\Model\Rule::COUPON_TYPE_AUTO + } elseif ((int) $rule->getCouponType() !== ModelRule::COUPON_TYPE_AUTO && !$rule->getUseAutoGeneration()) { $result['error'] = __('The rule coupon settings changed. Please save the rule before using auto-generation.'); @@ -119,11 +117,11 @@ public function execute() ); $this->_view->getLayout()->initMessages(); $result['messages'] = $this->_view->getLayout()->getMessagesBlock()->getGroupedHtml(); - } catch (\Exception $e) { + } catch (Exception $e) { $result['error'] = __( 'Something went wrong while validating coupon code length. Please review the log and try again.' ); - $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e); + $this->_objectManager->get(LoggerInterface::class)->critical($e); } } else { try { @@ -142,19 +140,19 @@ public function execute() ); $this->_view->getLayout()->initMessages(); $result['messages'] = $this->_view->getLayout()->getMessagesBlock()->getGroupedHtml(); - } catch (\Magento\Framework\Exception\InputException $inputException) { + } catch (InputException $inputException) { $result['error'] = __('Invalid data provided'); - } catch (\Magento\Framework\Exception\LocalizedException $e) { + } catch (LocalizedException $e) { $result['error'] = $e->getMessage(); - } catch (\Exception $e) { + } catch (Exception $e) { $result['error'] = __( 'Something went wrong while generating coupons. Please review the log and try again.' ); - $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e); + $this->_objectManager->get(LoggerInterface::class)->critical($e); } } $this->getResponse()->representJson( - $this->_objectManager->get(\Magento\Framework\Json\Helper\Data::class)->jsonEncode($result) + $this->_objectManager->get(JsonHelper::class)->jsonEncode($result) ); } } diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php index 4f3c712049e43..a23c9e8adb539 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php @@ -7,8 +7,9 @@ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; -class Index extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpGetActionInterface +class Index extends AdminhtmlPromoQuote implements HttpGetActionInterface { /** * Index action diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php index 5adef0552bc8b..a61d17da32f1c 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php @@ -7,8 +7,9 @@ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; -class NewAction extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpGetActionInterface +class NewAction extends AdminhtmlPromoQuote implements HttpGetActionInterface { /** * New promo quote action diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php index 26b6408d3a128..2ecb3fa88b7b8 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php @@ -9,6 +9,7 @@ use Magento\Rule\Model\Condition\AbstractCondition; use Magento\Rule\Model\Condition\ConditionInterface; use Magento\SalesRule\Controller\Adminhtml\Promo\Quote; +use Magento\SalesRule\Model\Rule as ModelRule; /** * Controller class NewConditionHtml. Returns condition html @@ -43,7 +44,7 @@ public function execute() )->setType( $type )->setRule( - $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class) + $this->_objectManager->create(ModelRule::class) )->setPrefix( 'conditions' ); diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php index e407142e6893a..2d0e79a650a12 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php @@ -6,49 +6,51 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote; +use Exception; +use Magento\Backend\App\Action\Context as ActionContext; +use Magento\Backend\Model\Session as BackendSession; use Magento\Framework\App\Action\HttpPostActionInterface; +use Magento\Framework\App\ObjectManager; use Magento\Framework\App\Request\DataPersistorInterface; +use Magento\Framework\App\Response\Http\FileFactory; +use Magento\Framework\DataObject; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Filter\FilterInput; +use Magento\Framework\Registry; +use Magento\Framework\Stdlib\DateTime\Filter\Date as DateFilter; use Magento\Framework\Stdlib\DateTime\TimezoneInterface; +use Magento\SalesRule\Controller\Adminhtml\Promo\Quote as AdminhtmlPromoQuote; +use Magento\SalesRule\Model\Rule as ModelRule; +use Psr\Log\LoggerInterface; /** * SalesRule save controller * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Save extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpPostActionInterface +class Save extends AdminhtmlPromoQuote implements HttpPostActionInterface { /** - * @var TimezoneInterface - */ - private $timezone; - - /** - * @var DataPersistorInterface - */ - private $dataPersistor; - - /** - * @param \Magento\Backend\App\Action\Context $context - * @param \Magento\Framework\Registry $coreRegistry - * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory - * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter + * @param ActionContext $context + * @param Registry $coreRegistry + * @param FileFactory $fileFactory + * @param DateFilter $dateFilter * @param TimezoneInterface $timezone * @param DataPersistorInterface $dataPersistor */ public function __construct( - \Magento\Backend\App\Action\Context $context, - \Magento\Framework\Registry $coreRegistry, - \Magento\Framework\App\Response\Http\FileFactory $fileFactory, - \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter, - TimezoneInterface $timezone = null, - DataPersistorInterface $dataPersistor = null + ActionContext $context, + Registry $coreRegistry, + FileFactory $fileFactory, + DateFilter $dateFilter, + private ?TimezoneInterface $timezone = null, + private ?DataPersistorInterface $dataPersistor = null ) { parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter); - $this->timezone = $timezone ?? \Magento\Framework\App\ObjectManager::getInstance()->get( + $this->timezone = $timezone ?? ObjectManager::getInstance()->get( TimezoneInterface::class ); - $this->dataPersistor = $dataPersistor ?? \Magento\Framework\App\ObjectManager::getInstance()->get( + $this->dataPersistor = $dataPersistor ?? ObjectManager::getInstance()->get( DataPersistorInterface::class ); } @@ -68,8 +70,8 @@ public function execute() ? null : $data['simple_free_shipping']; try { - /** @var $model \Magento\SalesRule\Model\Rule */ - $model = $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class); + /** @var $model ModelRule */ + $model = $this->_objectManager->create(ModelRule::class); $this->_eventManager->dispatch( 'adminhtml_controller_salesrule_prepare_save', ['request' => $this->getRequest()] @@ -89,12 +91,12 @@ public function execute() ); $data = $inputFilter->getUnescaped(); if (!$this->checkRuleExists($model)) { - throw new \Magento\Framework\Exception\LocalizedException(__('The wrong rule is specified.')); + throw new LocalizedException(__('The wrong rule is specified.')); } - $session = $this->_objectManager->get(\Magento\Backend\Model\Session::class); + $session = $this->_objectManager->get(BackendSession::class); - $validateResult = $model->validateData(new \Magento\Framework\DataObject($data)); + $validateResult = $model->validateData(new DataObject($data)); if ($validateResult !== true) { foreach ($validateResult as $errorMessage) { $this->messageManager->addErrorMessage($errorMessage); @@ -138,7 +140,7 @@ public function execute() } $this->_redirect('sales_rule/*/'); return; - } catch (\Magento\Framework\Exception\LocalizedException $e) { + } catch (LocalizedException $e) { $this->messageManager->addErrorMessage($e->getMessage()); $id = (int)$this->getRequest()->getParam('rule_id'); if (!empty($id)) { @@ -147,12 +149,12 @@ public function execute() $this->_redirect('sales_rule/*/new'); } return; - } catch (\Exception $e) { + } catch (Exception $e) { $this->messageManager->addErrorMessage( __('Something went wrong while saving the rule data. Please review the error log.') ); - $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e); - $this->_objectManager->get(\Magento\Backend\Model\Session::class)->setPageData($data); + $this->_objectManager->get(LoggerInterface::class)->critical($e); + $this->_objectManager->get(BackendSession::class)->setPageData($data); $this->_redirect('sales_rule/*/edit', ['id' => $this->getRequest()->getParam('rule_id')]); return; } @@ -163,10 +165,10 @@ public function execute() /** * Check if Cart Price Rule with provided id exists. * - * @param \Magento\SalesRule\Model\Rule $model + * @param ModelRule $model * @return bool */ - private function checkRuleExists(\Magento\SalesRule\Model\Rule $model): bool + private function checkRuleExists(ModelRule $model): bool { $id = $this->getRequest()->getParam('rule_id'); if ($id) { diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php index f413a7d047d62..812dd9851b6c7 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php @@ -8,6 +8,8 @@ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Widget; +use Magento\CatalogRule\Controller\Adminhtml\Promo\Widget\CategoriesJson as PromoWidgetCategoriesJson; + /** * Class for generation of JSON for building tree catalog. * @@ -15,7 +17,7 @@ * \Magento\Catalog\Block\Adminhtml\Category\Tree::getLoadTreeUrl * \Magento\Catalog\Block\Adminhtml\Category\Widget\Chooser::getLoadTreeUrl */ -class CategoriesJson extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Widget\CategoriesJson +class CategoriesJson extends PromoWidgetCategoriesJson { /** * Authorization level of a basic admin session. diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/Chooser.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/Chooser.php index 1b9ebcc402dc1..d4de52b98492d 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/Chooser.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Widget/Chooser.php @@ -5,7 +5,9 @@ */ namespace Magento\SalesRule\Controller\Adminhtml\Promo\Widget; -class Chooser extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Widget\Chooser +use Magento\CatalogRule\Controller\Adminhtml\Promo\Widget\Chooser as PromoWidgetChooser; + +class Chooser extends PromoWidgetChooser { /** * Authorization level of a basic admin session diff --git a/app/code/Magento/SalesRule/Cron/AggregateSalesReportCouponsData.php b/app/code/Magento/SalesRule/Cron/AggregateSalesReportCouponsData.php index 2bbec0e0e091a..6c28450465bdd 100644 --- a/app/code/Magento/SalesRule/Cron/AggregateSalesReportCouponsData.php +++ b/app/code/Magento/SalesRule/Cron/AggregateSalesReportCouponsData.php @@ -5,32 +5,36 @@ */ namespace Magento\SalesRule\Cron; +use Magento\Framework\Locale\ResolverInterface; +use Magento\Framework\Stdlib\DateTime\TimezoneInterface; +use Magento\SalesRule\Model\ResourceModel\Report\Rule as ReportRule; + class AggregateSalesReportCouponsData { /** - * @var \Magento\SalesRule\Model\ResourceModel\Report\Rule + * @var ReportRule */ protected $_reportRule; /** - * @var \Magento\Framework\Locale\ResolverInterface + * @var ResolverInterface */ protected $_localeResolver; /** - * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface + * @var TimezoneInterface */ protected $_localeDate; /** - * @param \Magento\SalesRule\Model\ResourceModel\Report\Rule $reportRule - * @param \Magento\Framework\Locale\ResolverInterface $localeResolver - * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate + * @param ReportRule $reportRule + * @param ResolverInterface $localeResolver + * @param TimezoneInterface $localeDate */ public function __construct( - \Magento\SalesRule\Model\ResourceModel\Report\Rule $reportRule, - \Magento\Framework\Locale\ResolverInterface $localeResolver, - \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate + ReportRule $reportRule, + ResolverInterface $localeResolver, + TimezoneInterface $localeDate ) { $this->_reportRule = $reportRule; $this->_localeResolver = $localeResolver; diff --git a/app/code/Magento/SalesRule/Helper/CartFixedDiscount.php b/app/code/Magento/SalesRule/Helper/CartFixedDiscount.php index eeab18e9c3601..43afce5c7ccb9 100644 --- a/app/code/Magento/SalesRule/Helper/CartFixedDiscount.php +++ b/app/code/Magento/SalesRule/Helper/CartFixedDiscount.php @@ -21,26 +21,6 @@ */ class CartFixedDiscount { - /** - * @var DeltaPriceRound - */ - private $deltaPriceRound; - - /** - * @var PriceCurrencyInterface - */ - private $priceCurrency; - - /** - * @var ShippingMethodConverter - */ - private $shippingMethodConverter = null; - - /** - * @var ScopeConfigInterface - */ - private $scopeConfig = null; - /** * @param DeltaPriceRound $deltaPriceRound * @param PriceCurrencyInterface $priceCurrency @@ -48,15 +28,11 @@ class CartFixedDiscount * @param ScopeConfigInterface $scopeConfig */ public function __construct( - DeltaPriceRound $deltaPriceRound, - PriceCurrencyInterface $priceCurrency, - ShippingMethodConverter $shippingMethodConverter, - ScopeConfigInterface $scopeConfig + private readonly DeltaPriceRound $deltaPriceRound, + private readonly PriceCurrencyInterface $priceCurrency, + private readonly ShippingMethodConverter $shippingMethodConverter, + private readonly ScopeConfigInterface $scopeConfig ) { - $this->deltaPriceRound = $deltaPriceRound; - $this->priceCurrency = $priceCurrency; - $this->shippingMethodConverter = $shippingMethodConverter; - $this->scopeConfig = $scopeConfig; } /** diff --git a/app/code/Magento/SalesRule/Helper/Coupon.php b/app/code/Magento/SalesRule/Helper/Coupon.php index 8d5dd69ccf45f..ce2fdd5c5a601 100644 --- a/app/code/Magento/SalesRule/Helper/Coupon.php +++ b/app/code/Magento/SalesRule/Helper/Coupon.php @@ -6,13 +6,17 @@ namespace Magento\SalesRule\Helper; +use Magento\Framework\App\Helper\AbstractHelper; +use Magento\Framework\App\Helper\Context as HelperContext; +use Magento\Store\Model\ScopeInterface; + /** * Helper for coupon codes creating and managing * * @api * @since 100.0.2 */ -class Coupon extends \Magento\Framework\App\Helper\AbstractHelper +class Coupon extends AbstractHelper { /** * Constants which defines all possible coupon codes formats @@ -47,11 +51,11 @@ class Coupon extends \Magento\Framework\App\Helper\AbstractHelper protected $_couponParameters; /** - * @param \Magento\Framework\App\Helper\Context $context + * @param HelperContext $context * @param array $couponParameters */ public function __construct( - \Magento\Framework\App\Helper\Context $context, + HelperContext $context, array $couponParameters ) { $this->_couponParameters = $couponParameters; @@ -81,7 +85,7 @@ public function getDefaultLength() { return (int)$this->scopeConfig->getValue( self::XML_PATH_SALES_RULE_COUPON_LENGTH, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ScopeInterface::SCOPE_STORE ); } @@ -94,7 +98,7 @@ public function getDefaultFormat() { return $this->scopeConfig->getValue( self::XML_PATH_SALES_RULE_COUPON_FORMAT, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ScopeInterface::SCOPE_STORE ); } @@ -107,7 +111,7 @@ public function getDefaultPrefix() { return $this->scopeConfig->getValue( self::XML_PATH_SALES_RULE_COUPON_PREFIX, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ScopeInterface::SCOPE_STORE ); } @@ -120,7 +124,7 @@ public function getDefaultSuffix() { return $this->scopeConfig->getValue( self::XML_PATH_SALES_RULE_COUPON_SUFFIX, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ScopeInterface::SCOPE_STORE ); } @@ -133,7 +137,7 @@ public function getDefaultDashInterval() { return (int)$this->scopeConfig->getValue( self::XML_PATH_SALES_RULE_COUPON_DASH_INTERVAL, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ScopeInterface::SCOPE_STORE ); } diff --git a/app/code/Magento/SalesRule/Model/Converter/ToDataModel.php b/app/code/Magento/SalesRule/Model/Converter/ToDataModel.php index 74a23f4d25e60..d6b05857d3da4 100644 --- a/app/code/Magento/SalesRule/Model/Converter/ToDataModel.php +++ b/app/code/Magento/SalesRule/Model/Converter/ToDataModel.php @@ -5,77 +5,44 @@ */ namespace Magento\SalesRule\Model\Converter; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Reflection\DataObjectProcessor; +use Magento\SalesRule\Api\Data\ConditionInterfaceFactory; use Magento\SalesRule\Api\Data\RuleExtensionFactory; use Magento\SalesRule\Api\Data\RuleExtensionInterface; +use Magento\SalesRule\Api\Data\RuleInterfaceFactory; +use Magento\SalesRule\Api\Data\RuleLabelInterfaceFactory; use Magento\SalesRule\Model\Data\Condition; use Magento\SalesRule\Api\Data\RuleInterface; +use Magento\SalesRule\Model\Data\Condition as ConditionDataModel; use Magento\SalesRule\Model\Data\Rule as RuleDataModel; use Magento\SalesRule\Model\Rule; use Magento\Framework\Serialize\Serializer\Json; +use Magento\SalesRule\Model\RuleFactory; class ToDataModel { /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - protected $ruleFactory; - - /** - * @var \Magento\SalesRule\Api\Data\RuleInterfaceFactory - */ - protected $ruleDataFactory; - - /** - * @var \Magento\SalesRule\Api\Data\ConditionInterfaceFactory - */ - protected $conditionDataFactory; - - /** - * @var \Magento\Framework\Reflection\DataObjectProcessor - */ - protected $dataObjectProcessor; - - /** - * @var \Magento\SalesRule\Api\Data\RuleLabelInterfaceFactory - */ - protected $ruleLabelFactory; - - /** - * @var Json $serializer - */ - private $serializer; - - /** - * @var RuleExtensionFactory - */ - private $extensionFactory; - - /** - * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory - * @param \Magento\SalesRule\Api\Data\RuleInterfaceFactory $ruleDataFactory - * @param \Magento\SalesRule\Api\Data\ConditionInterfaceFactory $conditionDataFactory - * @param \Magento\SalesRule\Api\Data\RuleLabelInterfaceFactory $ruleLabelFactory - * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + * @param RuleFactory $ruleFactory + * @param RuleInterfaceFactory $ruleDataFactory + * @param ConditionInterfaceFactory $conditionDataFactory + * @param RuleLabelInterfaceFactory $ruleLabelFactory + * @param DataObjectProcessor $dataObjectProcessor * @param Json $serializer Optional parameter for backward compatibility * @param RuleExtensionFactory|null $extensionFactory */ public function __construct( - \Magento\SalesRule\Model\RuleFactory $ruleFactory, - \Magento\SalesRule\Api\Data\RuleInterfaceFactory $ruleDataFactory, - \Magento\SalesRule\Api\Data\ConditionInterfaceFactory $conditionDataFactory, - \Magento\SalesRule\Api\Data\RuleLabelInterfaceFactory $ruleLabelFactory, - \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, - Json $serializer = null, - RuleExtensionFactory $extensionFactory = null + protected readonly RuleFactory $ruleFactory, + protected readonly RuleInterfaceFactory $ruleDataFactory, + protected readonly ConditionInterfaceFactory $conditionDataFactory, + protected readonly RuleLabelInterfaceFactory $ruleLabelFactory, + protected readonly DataObjectProcessor $dataObjectProcessor, + private ?Json $serializer = null, + private ?RuleExtensionFactory $extensionFactory = null ) { - $this->ruleFactory = $ruleFactory; - $this->ruleDataFactory = $ruleDataFactory; - $this->conditionDataFactory = $conditionDataFactory; - $this->ruleLabelFactory = $ruleLabelFactory; - $this->dataObjectProcessor = $dataObjectProcessor; - $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()->get(Json::class); + $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); $this->extensionFactory = $extensionFactory ?: - \Magento\Framework\App\ObjectManager::getInstance()->get(RuleExtensionFactory::class); + ObjectManager::getInstance()->get(RuleExtensionFactory::class); } /** @@ -89,7 +56,7 @@ public function toDataModel(Rule $ruleModel) $modelData = $ruleModel->getData(); $modelData = $this->convertExtensionAttributesToObject($modelData); - /** @var \Magento\SalesRule\Model\Data\Rule $dataModel */ + /** @var RuleDataModel $dataModel */ $dataModel = $this->ruleDataFactory->create(['data' => $modelData]); $this->mapFields($dataModel, $ruleModel); @@ -162,13 +129,13 @@ protected function mapCouponType(RuleDataModel $dataModel) if ($dataModel->getCouponType()) { $mappedValue = ''; switch ((int)$dataModel->getCouponType()) { - case \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON: + case Rule::COUPON_TYPE_NO_COUPON: $mappedValue = RuleInterface::COUPON_TYPE_NO_COUPON; break; - case \Magento\SalesRule\Model\Rule::COUPON_TYPE_SPECIFIC: + case Rule::COUPON_TYPE_SPECIFIC: $mappedValue = RuleInterface::COUPON_TYPE_SPECIFIC_COUPON; break; - case \Magento\SalesRule\Model\Rule::COUPON_TYPE_AUTO: + case Rule::COUPON_TYPE_AUTO: $mappedValue = RuleInterface::COUPON_TYPE_AUTO; break; default: @@ -215,7 +182,7 @@ protected function mapFields(RuleDataModel $dataModel, Rule $ruleModel) */ public function arrayToConditionDataModel(array $input) { - /** @var \Magento\SalesRule\Model\Data\Condition $conditionDataModel */ + /** @var ConditionDataModel $conditionDataModel */ $conditionDataModel = $this->conditionDataFactory->create(); foreach ($input as $key => $value) { switch ($key) { diff --git a/app/code/Magento/SalesRule/Model/Converter/ToModel.php b/app/code/Magento/SalesRule/Model/Converter/ToModel.php index 958d76b131682..02a764785e489 100644 --- a/app/code/Magento/SalesRule/Model/Converter/ToModel.php +++ b/app/code/Magento/SalesRule/Model/Converter/ToModel.php @@ -5,45 +5,42 @@ */ namespace Magento\SalesRule\Model\Converter; +use DateTime; +use Magento\Framework\DataObject; +use Magento\Framework\Exception\InputException; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Phrase; +use Magento\Framework\Reflection\DataObjectProcessor; use Magento\SalesRule\Api\Data\RuleInterface; +use Magento\SalesRule\Api\Data\RuleLabelInterface; use Magento\SalesRule\Model\Data\Condition; use Magento\SalesRule\Model\Data\Rule as RuleDataModel; use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule as ModelRule; +use Magento\SalesRule\Model\RuleFactory; class ToModel { public const DATE_TIME_FORMAT = 'Y-m-d\TH:i:s'; /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - protected $ruleFactory; - - /** - * @var \Magento\Framework\Reflection\DataObjectProcessor - */ - protected $dataObjectProcessor; - - /** - * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory - * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + * @param RuleFactory $ruleFactory + * @param DataObjectProcessor $dataObjectProcessor */ public function __construct( - \Magento\SalesRule\Model\RuleFactory $ruleFactory, - \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + protected readonly RuleFactory $ruleFactory, + protected readonly DataObjectProcessor $dataObjectProcessor ) { - $this->ruleFactory = $ruleFactory; - $this->dataObjectProcessor = $dataObjectProcessor; } /** * Map conditions * - * @param \Magento\SalesRule\Model\Rule $ruleModel + * @param ModelRule $ruleModel * @param RuleDataModel $dataModel * @return $this */ - protected function mapConditions(\Magento\SalesRule\Model\Rule $ruleModel, RuleDataModel $dataModel) + protected function mapConditions(ModelRule $ruleModel, RuleDataModel $dataModel) { $condition = $dataModel->getCondition(); if ($condition) { @@ -57,11 +54,11 @@ protected function mapConditions(\Magento\SalesRule\Model\Rule $ruleModel, RuleD /** * Map action conditions * - * @param \Magento\SalesRule\Model\Rule $ruleModel + * @param ModelRule $ruleModel * @param RuleDataModel $dataModel * @return $this */ - protected function mapActionConditions(\Magento\SalesRule\Model\Rule $ruleModel, RuleDataModel $dataModel) + protected function mapActionConditions(ModelRule $ruleModel, RuleDataModel $dataModel) { $condition = $dataModel->getActionCondition(); if ($condition) { @@ -84,7 +81,7 @@ protected function mapStoreLabels(Rule $ruleModel, RuleDataModel $dataModel) //translate store labels object into array if ($dataModel->getStoreLabels() !== null) { $storeLabels = []; - /** @var \Magento\SalesRule\Api\Data\RuleLabelInterface $ruleLabel */ + /** @var RuleLabelInterface $ruleLabel */ foreach ($dataModel->getStoreLabels() as $ruleLabel) { $storeLabels[$ruleLabel->getStoreId()] = $ruleLabel->getStoreLabel(); } @@ -105,13 +102,13 @@ protected function mapCouponType(Rule $ruleModel) $mappedValue = ''; switch ($ruleModel->getCouponType()) { case RuleInterface::COUPON_TYPE_NO_COUPON: - $mappedValue = \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON; + $mappedValue = ModelRule::COUPON_TYPE_NO_COUPON; break; case RuleInterface::COUPON_TYPE_SPECIFIC_COUPON: - $mappedValue = \Magento\SalesRule\Model\Rule::COUPON_TYPE_SPECIFIC; + $mappedValue = ModelRule::COUPON_TYPE_SPECIFIC; break; case RuleInterface::COUPON_TYPE_AUTO: - $mappedValue = \Magento\SalesRule\Model\Rule::COUPON_TYPE_AUTO; + $mappedValue = ModelRule::COUPON_TYPE_AUTO; break; default: } @@ -123,11 +120,11 @@ protected function mapCouponType(Rule $ruleModel) /** * Map fields * - * @param \Magento\SalesRule\Model\Rule $ruleModel + * @param ModelRule $ruleModel * @param RuleDataModel $dataModel * @return $this */ - protected function mapFields(\Magento\SalesRule\Model\Rule $ruleModel, RuleDataModel $dataModel) + protected function mapFields(ModelRule $ruleModel, RuleDataModel $dataModel) { $this->mapConditions($ruleModel, $dataModel); $this->mapActionConditions($ruleModel, $dataModel); @@ -169,8 +166,8 @@ public function dataModelToArray(Condition $condition, $key = 'conditions') * * @param RuleDataModel $dataModel * @return $this|Rule - * @throws \Magento\Framework\Exception\NoSuchEntityException - * @throws \Magento\Framework\Exception\InputException + * @throws NoSuchEntityException + * @throws InputException */ public function toModel(RuleDataModel $dataModel) { @@ -179,7 +176,7 @@ public function toModel(RuleDataModel $dataModel) if ($ruleId) { $ruleModel = $this->ruleFactory->create()->load($ruleId); if (!$ruleModel->getId()) { - throw new \Magento\Framework\Exception\NoSuchEntityException(); + throw new NoSuchEntityException(); } } else { $ruleModel = $this->ruleFactory->create(); @@ -195,7 +192,7 @@ public function toModel(RuleDataModel $dataModel) $data = $this->dataObjectProcessor->buildOutputDataArray( $dataModel, - \Magento\SalesRule\Api\Data\RuleInterface::class + RuleInterface::class ); $data = array_filter($data, function ($value) { @@ -203,15 +200,15 @@ public function toModel(RuleDataModel $dataModel) }); $mergedData = array_merge($modelData, $data); - $validateResult = $ruleModel->validateData(new \Magento\Framework\DataObject($mergedData)); + $validateResult = $ruleModel->validateData(new DataObject($mergedData)); if ($validateResult !== true) { $text = ''; - /** @var \Magento\Framework\Phrase $errorMessage */ + /** @var Phrase $errorMessage */ foreach ($validateResult as $errorMessage) { $text .= $errorMessage->getText(); $text .= '; '; } - throw new \Magento\Framework\Exception\InputException(new \Magento\Framework\Phrase($text)); + throw new InputException(new Phrase($text)); } $ruleModel->setData($mergedData); @@ -230,7 +227,7 @@ public function toModel(RuleDataModel $dataModel) private function formattingDate($date) { if ($date) { - $fromDate = new \DateTime($date); + $fromDate = new DateTime($date); $date = $fromDate->format(self::DATE_TIME_FORMAT); } diff --git a/app/code/Magento/SalesRule/Model/Coupon.php b/app/code/Magento/SalesRule/Model/Coupon.php index 070ce89c1d474..fd995140c722d 100644 --- a/app/code/Magento/SalesRule/Model/Coupon.php +++ b/app/code/Magento/SalesRule/Model/Coupon.php @@ -5,14 +5,18 @@ */ namespace Magento\SalesRule\Model; +use Magento\Framework\Model\AbstractExtensibleModel; +use Magento\SalesRule\Api\Data\CouponExtensionInterface; +use Magento\SalesRule\Api\Data\CouponInterface; +use Magento\SalesRule\Model\ResourceModel\Coupon as ResourceCoupon; + /** * SalesRule Coupon Model * * @api * @since 100.0.2 */ -class Coupon extends \Magento\Framework\Model\AbstractExtensibleModel implements - \Magento\SalesRule\Api\Data\CouponInterface +class Coupon extends AbstractExtensibleModel implements CouponInterface { const KEY_COUPON_ID = 'coupon_id'; const KEY_RULE_ID = 'rule_id'; @@ -36,7 +40,7 @@ class Coupon extends \Magento\Framework\Model\AbstractExtensibleModel implements protected function _construct() { parent::_construct(); - $this->_init(\Magento\SalesRule\Model\ResourceModel\Coupon::class); + $this->_init(ResourceCoupon::class); } /** @@ -293,7 +297,7 @@ public function setType($type) /** * Retrieve existing extension attributes object or create a new one. * - * @return \Magento\SalesRule\Api\Data\CouponExtensionInterface|null + * @return CouponExtensionInterface|null */ public function getExtensionAttributes() { @@ -303,11 +307,11 @@ public function getExtensionAttributes() /** * Set an extension attributes object. * - * @param \Magento\SalesRule\Api\Data\CouponExtensionInterface $extensionAttributes + * @param CouponExtensionInterface $extensionAttributes * @return $this */ public function setExtensionAttributes( - \Magento\SalesRule\Api\Data\CouponExtensionInterface $extensionAttributes + CouponExtensionInterface $extensionAttributes ) { return $this->_setExtensionAttributes($extensionAttributes); } diff --git a/app/code/Magento/SalesRule/Model/Coupon/CaptchaConfigProvider.php b/app/code/Magento/SalesRule/Model/Coupon/CaptchaConfigProvider.php index 0f4e008e672ce..073ed087dd156 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/CaptchaConfigProvider.php +++ b/app/code/Magento/SalesRule/Model/Coupon/CaptchaConfigProvider.php @@ -22,16 +22,6 @@ */ class CaptchaConfigProvider implements ConfigProviderInterface { - /** - * @var StoreManagerInterface - */ - private $storeManager; - - /** - * @var Helper - */ - private $captchaData; - /** * @var CustomerSession */ @@ -42,10 +32,11 @@ class CaptchaConfigProvider implements ConfigProviderInterface * @param Helper $captchaData * @param CustomerSession $session */ - public function __construct(StoreManagerInterface $storeManager, Helper $captchaData, CustomerSession $session) - { - $this->storeManager = $storeManager; - $this->captchaData = $captchaData; + public function __construct( + private readonly StoreManagerInterface $storeManager, + private readonly Helper $captchaData, + CustomerSession $session + ) { $this->customerSession = $session; } diff --git a/app/code/Magento/SalesRule/Model/Coupon/CodeLimitManager.php b/app/code/Magento/SalesRule/Model/Coupon/CodeLimitManager.php index 0a4ca20268e86..e542848ab515c 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/CodeLimitManager.php +++ b/app/code/Magento/SalesRule/Model/Coupon/CodeLimitManager.php @@ -26,41 +26,6 @@ */ class CodeLimitManager implements CodeLimitManagerInterface { - /** - * @var CouponRepositoryInterface - */ - private $repository; - - /** - * @var SearchCriteriaBuilder - */ - private $criteriaBuilder; - - /** - * @var CaptchaHelper - */ - private $captchaHelper; - - /** - * @var CaptchaResolver - */ - private $captchaResolver; - - /** - * @var RequestInterface - */ - private $request; - - /** - * @var UserContextInterface - */ - private $userContext; - - /** - * @var CustomerRepositoryInterface - */ - private $customerRepository; - /** * Needed to avoid confusion in case of duplicate checks. * @@ -87,21 +52,14 @@ class CodeLimitManager implements CodeLimitManagerInterface * @param CustomerRepositoryInterface $customerRepository */ public function __construct( - CouponRepositoryInterface $repository, - SearchCriteriaBuilder $criteriaBuilder, - CaptchaHelper $captchaHelper, - CaptchaResolver $captchaResolver, - RequestInterface $request, - UserContextInterface $userContext, - CustomerRepositoryInterface $customerRepository + private readonly CouponRepositoryInterface $repository, + private readonly SearchCriteriaBuilder $criteriaBuilder, + private readonly CaptchaHelper $captchaHelper, + private readonly CaptchaResolver $captchaResolver, + private readonly RequestInterface $request, + private readonly UserContextInterface $userContext, + private readonly CustomerRepositoryInterface $customerRepository ) { - $this->repository = $repository; - $this->criteriaBuilder = $criteriaBuilder; - $this->captchaHelper = $captchaHelper; - $this->captchaResolver = $captchaResolver; - $this->request = $request; - $this->userContext = $userContext; - $this->customerRepository = $customerRepository; } /** diff --git a/app/code/Magento/SalesRule/Model/Coupon/Codegenerator.php b/app/code/Magento/SalesRule/Model/Coupon/Codegenerator.php index c89677f0e9097..78670164df11d 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/Codegenerator.php +++ b/app/code/Magento/SalesRule/Model/Coupon/Codegenerator.php @@ -5,7 +5,9 @@ */ namespace Magento\SalesRule\Model\Coupon; -class Codegenerator extends \Magento\Framework\DataObject implements CodegeneratorInterface +use Magento\Framework\DataObject; + +class Codegenerator extends DataObject implements CodegeneratorInterface { /** * The minimum length of the default diff --git a/app/code/Magento/SalesRule/Model/Coupon/Consumer.php b/app/code/Magento/SalesRule/Model/Coupon/Consumer.php index 2354c72a3e293..dd7367ef9dee0 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/Consumer.php +++ b/app/code/Magento/SalesRule/Model/Coupon/Consumer.php @@ -12,49 +12,26 @@ use Magento\SalesRule\Api\CouponManagementInterface; use Magento\SalesRule\Api\Data\CouponGenerationSpecInterface; use Magento\Framework\Notification\NotifierInterface; +use Psr\Log\LoggerInterface; /** * Consumer for export coupons generation. */ class Consumer { - /** - * @var NotifierInterface - */ - private $notifier; - - /** - * @var \Psr\Log\LoggerInterface - */ - private $logger; - - /** - * @var CouponManagementInterface - */ - private $couponManager; - - /** - * @var Filesystem - */ - private $filesystem; - /** * Consumer constructor. - * @param \Psr\Log\LoggerInterface $logger + * @param LoggerInterface $logger * @param CouponManagementInterface $couponManager * @param Filesystem $filesystem * @param NotifierInterface $notifier */ public function __construct( - \Psr\Log\LoggerInterface $logger, - CouponManagementInterface $couponManager, - Filesystem $filesystem, - NotifierInterface $notifier + private readonly LoggerInterface $logger, + private readonly CouponManagementInterface $couponManager, + private readonly Filesystem $filesystem, + private readonly NotifierInterface $notifier ) { - $this->logger = $logger; - $this->couponManager = $couponManager; - $this->filesystem = $filesystem; - $this->notifier = $notifier; } /** diff --git a/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php b/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php index b9cac227be127..72db6c7755f61 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php +++ b/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php @@ -5,13 +5,26 @@ */ namespace Magento\SalesRule\Model\Coupon; +use Magento\Framework\Data\Collection\AbstractDb; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Math\Random as MathRandom; +use Magento\Framework\Model\AbstractModel; +use Magento\Framework\Model\Context as ModelContext; +use Magento\Framework\Model\ResourceModel\AbstractResource; +use Magento\Framework\Registry; +use Magento\Framework\Stdlib\DateTime; +use Magento\Framework\Stdlib\DateTime\DateTime as DateTimeModel; +use Magento\SalesRule\Helper\Coupon as CouponHelper; +use Magento\SalesRule\Model\Coupon; +use Magento\SalesRule\Model\CouponFactory; +use Magento\SalesRule\Model\ResourceModel\Coupon as ResourceCoupon; + /** * SalesRule Mass Coupon Generator * * @author Magento Core Team */ -class Massgenerator extends \Magento\Framework\Model\AbstractModel implements - \Magento\SalesRule\Model\Coupon\CodegeneratorInterface +class Massgenerator extends AbstractModel implements CodegeneratorInterface { /** * Maximum probability of guessing the coupon on the first attempt @@ -35,53 +48,27 @@ class Massgenerator extends \Magento\Framework\Model\AbstractModel implements protected $generatedCodes = []; /** - * Sales rule coupon - * - * @var \Magento\SalesRule\Helper\Coupon - */ - protected $salesRuleCoupon; - - /** - * @var \Magento\Framework\Stdlib\DateTime\DateTime - */ - protected $date; - - /** - * @var \Magento\SalesRule\Model\CouponFactory - */ - protected $couponFactory; - - /** - * @var \Magento\Framework\Stdlib\DateTime - */ - protected $dateTime; - - /** - * @param \Magento\Framework\Model\Context $context - * @param \Magento\Framework\Registry $registry - * @param \Magento\SalesRule\Helper\Coupon $salesRuleCoupon - * @param \Magento\SalesRule\Model\CouponFactory $couponFactory - * @param \Magento\Framework\Stdlib\DateTime\DateTime $date - * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource - * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection + * @param ModelContext $context + * @param Registry $registry + * @param CouponHelper $salesRuleCoupon Sales rule coupon + * @param CouponFactory $couponFactory + * @param DateTimeModel $date + * @param DateTime $dateTime + * @param AbstractResource $resource + * @param AbstractDb $resourceCollection * @param array $data */ public function __construct( - \Magento\Framework\Model\Context $context, - \Magento\Framework\Registry $registry, - \Magento\SalesRule\Helper\Coupon $salesRuleCoupon, - \Magento\SalesRule\Model\CouponFactory $couponFactory, - \Magento\Framework\Stdlib\DateTime\DateTime $date, - \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, - \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, + ModelContext $context, + Registry $registry, + protected readonly CouponHelper $salesRuleCoupon, + protected readonly CouponFactory $couponFactory, + protected readonly DateTimeModel $date, + protected readonly DateTime $dateTime, + AbstractResource $resource = null, + AbstractDb $resourceCollection = null, array $data = [] ) { - $this->salesRuleCoupon = $salesRuleCoupon; - $this->date = $date; - $this->couponFactory = $couponFactory; - $this->dateTime = $dateTime; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } @@ -92,7 +79,7 @@ public function __construct( */ protected function _construct() { - $this->_init(\Magento\SalesRule\Model\ResourceModel\Coupon::class); + $this->_init(ResourceCoupon::class); } /** @@ -104,7 +91,7 @@ public function generateCode() { $format = $this->getFormat(); if (empty($format)) { - $format = \Magento\SalesRule\Helper\Coupon::COUPON_FORMAT_ALPHANUMERIC; + $format = CouponHelper::COUPON_FORMAT_ALPHANUMERIC; } $splitChar = $this->getDelimiter(); @@ -115,7 +102,7 @@ public function generateCode() $split = max(0, (int)$this->getDash()); $length = max(1, (int)$this->getLength()); for ($i = 0; $i < $length; ++$i) { - $char = $charset[\Magento\Framework\Math\Random::getRandomNumber(0, $charsetSize - 1)]; + $char = $charset[MathRandom::getRandomNumber(0, $charsetSize - 1)]; if (($split > 0) && (($i % $split) === 0) && ($i !== 0)) { $char = $splitChar . $char; } @@ -142,7 +129,7 @@ public function getDelimiter() /** * Generate Coupons Pool * - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException * @return $this */ public function generatePool() @@ -152,7 +139,7 @@ public function generatePool() $size = $this->getQty(); $maxAttempts = $this->getMaxAttempts() ? $this->getMaxAttempts() : self::MAX_GENERATE_ATTEMPTS; $this->increaseLength(); - /** @var $coupon \Magento\SalesRule\Model\Coupon */ + /** @var Coupon $coupon */ $coupon = $this->couponFactory->create(); $nowTimestamp = $this->dateTime->formatDate($this->date->gmtTimestamp()); @@ -160,7 +147,7 @@ public function generatePool() $attempt = 0; do { if ($attempt >= $maxAttempts) { - throw new \Magento\Framework\Exception\LocalizedException( + throw new LocalizedException( __('We cannot create the requested Coupon Qty. Please check your settings and try again.') ); } @@ -173,7 +160,7 @@ public function generatePool() ->setUsageLimit($this->getUsesPerCoupon()) ->setUsagePerCustomer($this->getUsagePerCustomer()) ->setCreatedAt($nowTimestamp) - ->setType(\Magento\SalesRule\Helper\Coupon::COUPON_TYPE_SPECIFIC_AUTOGENERATED) + ->setType(CouponHelper::COUPON_TYPE_SPECIFIC_AUTOGENERATED) ->setCode($code) ->save(); diff --git a/app/code/Magento/SalesRule/Model/Coupon/Quote/UpdateCouponUsages.php b/app/code/Magento/SalesRule/Model/Coupon/Quote/UpdateCouponUsages.php index 02da921e032e0..b070519bbd1b8 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/Quote/UpdateCouponUsages.php +++ b/app/code/Magento/SalesRule/Model/Coupon/Quote/UpdateCouponUsages.php @@ -17,26 +17,14 @@ */ class UpdateCouponUsages { - /** - * @var UpdateInfoFactory - */ - private $updateInfoFactory; - - /** - * @var CouponUsagePublisher - */ - private $couponUsagePublisher; - /** * @param CouponUsagePublisher $couponUsagePublisher * @param UpdateInfoFactory $updateInfoFactory */ public function __construct( - CouponUsagePublisher $couponUsagePublisher, - UpdateInfoFactory $updateInfoFactory + private readonly CouponUsagePublisher $couponUsagePublisher, + private readonly UpdateInfoFactory $updateInfoFactory ) { - $this->couponUsagePublisher = $couponUsagePublisher; - $this->updateInfoFactory = $updateInfoFactory; } /** diff --git a/app/code/Magento/SalesRule/Model/Coupon/UpdateCouponUsages.php b/app/code/Magento/SalesRule/Model/Coupon/UpdateCouponUsages.php index 2d4535120b1ea..f5b438839d12e 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/UpdateCouponUsages.php +++ b/app/code/Magento/SalesRule/Model/Coupon/UpdateCouponUsages.php @@ -18,26 +18,14 @@ */ class UpdateCouponUsages { - /** - * @var CouponUsageProcessor - */ - private $couponUsageProcessor; - - /** - * @var UpdateInfoFactory - */ - private $updateInfoFactory; - /** * @param CouponUsageProcessor $couponUsageProcessor * @param UpdateInfoFactory $updateInfoFactory */ public function __construct( - CouponUsageProcessor $couponUsageProcessor, - UpdateInfoFactory $updateInfoFactory + private readonly CouponUsageProcessor $couponUsageProcessor, + private readonly UpdateInfoFactory $updateInfoFactory ) { - $this->couponUsageProcessor = $couponUsageProcessor; - $this->updateInfoFactory = $updateInfoFactory; } /** diff --git a/app/code/Magento/SalesRule/Model/Coupon/Usage/Processor.php b/app/code/Magento/SalesRule/Model/Coupon/Usage/Processor.php index 3845ace8639c9..60c857ac2c6b6 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/Usage/Processor.php +++ b/app/code/Magento/SalesRule/Model/Coupon/Usage/Processor.php @@ -7,6 +7,7 @@ namespace Magento\SalesRule\Model\Coupon\Usage; +use Exception; use Magento\SalesRule\Model\Coupon; use Magento\SalesRule\Model\ResourceModel\Coupon\Usage; use Magento\SalesRule\Model\Rule\CustomerFactory; @@ -17,26 +18,6 @@ */ class Processor { - /** - * @var RuleFactory - */ - private $ruleFactory; - - /** - * @var CustomerFactory - */ - private $ruleCustomerFactory; - - /** - * @var Coupon - */ - private $coupon; - - /** - * @var Usage - */ - private $couponUsage; - /** * @param RuleFactory $ruleFactory * @param CustomerFactory $ruleCustomerFactory @@ -44,15 +25,11 @@ class Processor * @param Usage $couponUsage */ public function __construct( - RuleFactory $ruleFactory, - CustomerFactory $ruleCustomerFactory, - Coupon $coupon, - Usage $couponUsage + private readonly RuleFactory $ruleFactory, + private readonly CustomerFactory $ruleCustomerFactory, + private readonly Coupon $coupon, + private readonly Usage $couponUsage ) { - $this->ruleFactory = $ruleFactory; - $this->ruleCustomerFactory = $ruleCustomerFactory; - $this->coupon = $coupon; - $this->couponUsage = $couponUsage; } /** @@ -133,7 +110,7 @@ private function updateRuleUsages(bool $isIncrement, int $ruleId): void * @param bool $isIncrement * @param int $ruleId * @param int $customerId - * @throws \Exception + * @throws Exception */ private function updateCustomerRuleUsages(bool $isIncrement, int $ruleId, int $customerId): void { diff --git a/app/code/Magento/SalesRule/Model/CouponGenerator.php b/app/code/Magento/SalesRule/Model/CouponGenerator.php index 11a43bdceba1a..0b36cfa2181c4 100644 --- a/app/code/Magento/SalesRule/Model/CouponGenerator.php +++ b/app/code/Magento/SalesRule/Model/CouponGenerator.php @@ -5,6 +5,9 @@ */ namespace Magento\SalesRule\Model; +use Magento\SalesRule\Api\Data\CouponGenerationSpecInterfaceFactory; +use Magento\SalesRule\Model\Service\CouponManagementService; + /** * Allows to generate a pool of coupon codes. * @@ -29,29 +32,17 @@ class CouponGenerator 'quantity' => 'qty' ]; - /** - * @var Service\CouponManagementService - */ - private $couponManagementService; - - /** - * @var \Magento\SalesRule\Api\Data\CouponGenerationSpecInterfaceFactory - */ - private $generationSpecFactory; - /** * All objects should be injected through constructor, because we need to have working service already * after it initializing * * @param Service\CouponManagementService $couponManagementService - * @param \Magento\SalesRule\Api\Data\CouponGenerationSpecInterfaceFactory $generationSpecFactory + * @param CouponGenerationSpecInterfaceFactory $generationSpecFactory */ public function __construct( - \Magento\SalesRule\Model\Service\CouponManagementService $couponManagementService, - \Magento\SalesRule\Api\Data\CouponGenerationSpecInterfaceFactory $generationSpecFactory + private readonly CouponManagementService $couponManagementService, + private readonly CouponGenerationSpecInterfaceFactory $generationSpecFactory ) { - $this->couponManagementService = $couponManagementService; - $this->generationSpecFactory = $generationSpecFactory; } /** diff --git a/app/code/Magento/SalesRule/Model/CouponRepository.php b/app/code/Magento/SalesRule/Model/CouponRepository.php index f32fbc3d12134..b2b2fc7ddb744 100644 --- a/app/code/Magento/SalesRule/Model/CouponRepository.php +++ b/app/code/Magento/SalesRule/Model/CouponRepository.php @@ -6,90 +6,63 @@ namespace Magento\SalesRule\Model; +use Exception; +use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface; use Magento\Framework\Api\Search\FilterGroup; use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface; +use Magento\Framework\Api\SearchCriteriaInterface; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Exception\InputException; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\SalesRule\Api\CouponRepositoryInterface; +use Magento\SalesRule\Api\Data\CouponInterface; +use Magento\SalesRule\Api\Data\CouponSearchResultInterface; +use Magento\SalesRule\Api\Data\CouponSearchResultInterfaceFactory; use Magento\SalesRule\Model\ResourceModel\Coupon\Collection; +use Magento\SalesRule\Model\ResourceModel\Coupon\Collection as CouponCollection; +use Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory; +use Magento\SalesRule\Model\Spi\CouponResourceInterface; /** * Coupon CRUD class * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class CouponRepository implements \Magento\SalesRule\Api\CouponRepositoryInterface +class CouponRepository implements CouponRepositoryInterface { - /** - * @var \Magento\SalesRule\Model\CouponFactory - */ - protected $couponFactory; - - /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - protected $ruleFactory; - - /** - * @var \Magento\SalesRule\Api\Data\CouponSearchResultInterfaceFactory - */ - protected $searchResultFactory; - - /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory - */ - protected $collectionFactory; - - /** - * @var \Magento\SalesRule\Model\Spi\CouponResourceInterface - */ - protected $resourceModel; - - /** - * @var \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface - */ - protected $extensionAttributesJoinProcessor; - - /** - * @var \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface - */ - private $collectionProcessor; - /** * CouponRepository constructor. * @param CouponFactory $couponFactory * @param RuleFactory $ruleFactory - * @param \Magento\SalesRule\Api\Data\CouponSearchResultInterfaceFactory $searchResultFactory - * @param ResourceModel\Coupon\CollectionFactory $collectionFactory + * @param CouponSearchResultInterfaceFactory $searchResultFactory + * @param CollectionFactory $collectionFactory * @param Spi\CouponResourceInterface $resourceModel - * @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor + * @param JoinProcessorInterface $extensionAttributesJoinProcessor * @param CollectionProcessorInterface|null $collectionProcessor */ public function __construct( - \Magento\SalesRule\Model\CouponFactory $couponFactory, - \Magento\SalesRule\Model\RuleFactory $ruleFactory, - \Magento\SalesRule\Api\Data\CouponSearchResultInterfaceFactory $searchResultFactory, - \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory $collectionFactory, - \Magento\SalesRule\Model\Spi\CouponResourceInterface $resourceModel, - \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor, - CollectionProcessorInterface $collectionProcessor = null + protected readonly CouponFactory $couponFactory, + protected readonly RuleFactory $ruleFactory, + protected readonly CouponSearchResultInterfaceFactory $searchResultFactory, + protected readonly CollectionFactory $collectionFactory, + protected readonly CouponResourceInterface $resourceModel, + protected readonly JoinProcessorInterface $extensionAttributesJoinProcessor, + private ?CollectionProcessorInterface $collectionProcessor = null ) { - $this->couponFactory = $couponFactory; - $this->ruleFactory = $ruleFactory; - $this->searchResultFactory = $searchResultFactory; - $this->collectionFactory = $collectionFactory; - $this->resourceModel = $resourceModel; - $this->extensionAttributesJoinProcessor = $extensionAttributesJoinProcessor; $this->collectionProcessor = $collectionProcessor ?: $this->getCollectionProcessor(); } /** * Save coupon. * - * @param \Magento\SalesRule\Api\Data\CouponInterface $coupon - * @return \Magento\SalesRule\Api\Data\CouponInterface - * @throws \Magento\Framework\Exception\InputException If there is a problem with the input - * @throws \Magento\Framework\Exception\NoSuchEntityException If a coupon ID is sent but the coupon does not exist - * @throws \Magento\Framework\Exception\LocalizedException + * @param CouponInterface $coupon + * @return CouponInterface + * @throws InputException If there is a problem with the input + * @throws NoSuchEntityException If a coupon ID is sent but the coupon does not exist + * @throws LocalizedException */ - public function save(\Magento\SalesRule\Api\Data\CouponInterface $coupon) + public function save(CouponInterface $coupon) { //if coupon id is provided, use the existing coupon and blend in the new data supplied $couponId = $coupon->getCouponId(); @@ -103,25 +76,25 @@ public function save(\Magento\SalesRule\Api\Data\CouponInterface $coupon) try { $rule = $this->ruleFactory->create()->load($coupon->getRuleId()); if (!$rule->getRuleId()) { - throw \Magento\Framework\Exception\NoSuchEntityException::singleField('rule_id', $coupon->getRuleId()); + throw NoSuchEntityException::singleField('rule_id', $coupon->getRuleId()); } if ($rule->getCouponType() == $rule::COUPON_TYPE_NO_COUPON) { - throw new \Magento\Framework\Exception\LocalizedException( + throw new LocalizedException( __('Specified rule does not allow coupons') ); } elseif ($rule->getUseAutoGeneration() && $coupon->getType() == $coupon::TYPE_MANUAL) { - throw new \Magento\Framework\Exception\LocalizedException( + throw new LocalizedException( __('Specified rule only allows auto generated coupons') ); } elseif (!$rule->getUseAutoGeneration() && $coupon->getType() == $coupon::TYPE_GENERATED) { - throw new \Magento\Framework\Exception\LocalizedException( + throw new LocalizedException( __('Specified rule does not allow auto generated coupons') ); } $coupon->setUsageLimit($rule->getUsesPerCoupon()); $coupon->setUsagePerCustomer($rule->getUsesPerCustomer()); - } catch (\Exception $e) { - throw new \Magento\Framework\Exception\LocalizedException( + } catch (Exception $e) { + throw new LocalizedException( __('Error occurred when saving coupon: %1', $e->getMessage()) ); } @@ -134,16 +107,16 @@ public function save(\Magento\SalesRule\Api\Data\CouponInterface $coupon) * Get coupon by coupon id. * * @param int $couponId - * @return \Magento\SalesRule\Api\Data\CouponInterface - * @throws \Magento\Framework\Exception\NoSuchEntityException If $couponId is not found - * @throws \Magento\Framework\Exception\LocalizedException + * @return CouponInterface + * @throws NoSuchEntityException If $couponId is not found + * @throws LocalizedException */ public function getById($couponId) { $coupon = $this->couponFactory->create()->load($couponId); if (!$coupon->getCouponId()) { - throw new \Magento\Framework\Exception\NoSuchEntityException(); + throw new NoSuchEntityException(); } return $coupon; } @@ -151,15 +124,15 @@ public function getById($couponId) /** * Retrieve coupon. * - * @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria - * @return \Magento\SalesRule\Api\Data\CouponSearchResultInterface - * @throws \Magento\Framework\Exception\LocalizedException + * @param SearchCriteriaInterface $searchCriteria + * @return CouponSearchResultInterface + * @throws LocalizedException */ - public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria) + public function getList(SearchCriteriaInterface $searchCriteria) { - /** @var \Magento\SalesRule\Model\ResourceModel\Coupon\Collection $collection */ + /** @var CouponCollection $collection */ $collection = $this->collectionFactory->create(); - $couponInterfaceName = \Magento\SalesRule\Api\Data\CouponInterface::class; + $couponInterfaceName = CouponInterface::class; $this->extensionAttributesJoinProcessor->process($collection, $couponInterfaceName); $this->collectionProcessor->process($searchCriteria, $collection); @@ -175,17 +148,17 @@ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCr * * @param int $couponId * @return bool true on success - * @throws \Magento\Framework\Exception\NoSuchEntityException - * @throws \Magento\Framework\Exception\LocalizedException + * @throws NoSuchEntityException + * @throws LocalizedException */ public function deleteById($couponId) { - /** @var \Magento\SalesRule\Model\Coupon $coupon */ + /** @var Coupon $coupon */ $coupon = $this->couponFactory->create() ->load($couponId); if (!$coupon->getCouponId()) { - throw new \Magento\Framework\Exception\NoSuchEntityException(); + throw new NoSuchEntityException(); } $this->resourceModel->delete($coupon); @@ -225,8 +198,8 @@ protected function addFilterGroupToCollection( private function getCollectionProcessor() { if (!$this->collectionProcessor) { - $this->collectionProcessor = \Magento\Framework\App\ObjectManager::getInstance()->get( - \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface::class + $this->collectionProcessor = ObjectManager::getInstance()->get( + CollectionProcessorInterface::class ); } return $this->collectionProcessor; diff --git a/app/code/Magento/SalesRule/Model/CouponUsageConsumer.php b/app/code/Magento/SalesRule/Model/CouponUsageConsumer.php index 0520cb658e408..0a3a6b6fadd50 100644 --- a/app/code/Magento/SalesRule/Model/CouponUsageConsumer.php +++ b/app/code/Magento/SalesRule/Model/CouponUsageConsumer.php @@ -7,6 +7,7 @@ namespace Magento\SalesRule\Model; +use Exception; use Magento\SalesRule\Model\Coupon\Usage\UpdateInfoFactory; use Magento\SalesRule\Model\Coupon\Usage\Processor as CouponUsageProcessor; use Magento\AsynchronousOperations\Api\Data\OperationInterface; @@ -20,31 +21,6 @@ */ class CouponUsageConsumer { - /** - * @var SerializerInterface - */ - private $serializer; - - /** - * @var LoggerInterface - */ - private $logger; - - /** - * @var CouponUsageProcessor - */ - private $processor; - - /** - * @var EntityManager - */ - private $entityManager; - - /** - * @var UpdateInfoFactory - */ - private $updateInfoFactory; - /** * @param UpdateInfoFactory $updateInfoFactory * @param CouponUsageProcessor $processor @@ -53,17 +29,12 @@ class CouponUsageConsumer * @param EntityManager $entityManager */ public function __construct( - UpdateInfoFactory $updateInfoFactory, - CouponUsageProcessor $processor, - LoggerInterface $logger, - SerializerInterface $serializer, - EntityManager $entityManager + private readonly UpdateInfoFactory $updateInfoFactory, + private readonly CouponUsageProcessor $processor, + private readonly LoggerInterface $logger, + private readonly SerializerInterface $serializer, + private readonly EntityManager $entityManager ) { - $this->updateInfoFactory = $updateInfoFactory; - $this->processor = $processor; - $this->logger = $logger; - $this->serializer = $serializer; - $this->entityManager = $entityManager; } /** @@ -71,7 +42,7 @@ public function __construct( * * @param OperationInterface $operation * @return void - * @throws \Exception + * @throws Exception */ public function process(OperationInterface $operation): void { @@ -86,7 +57,7 @@ public function process(OperationInterface $operation): void $status = OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED; $errorCode = $e->getCode(); $message = $e->getMessage(); - } catch (\Exception $e) { + } catch (Exception $e) { $this->logger->critical($e->getMessage()); $status = OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED; $errorCode = $e->getCode(); diff --git a/app/code/Magento/SalesRule/Model/Data/Condition.php b/app/code/Magento/SalesRule/Model/Data/Condition.php index 97226b0cc6dfc..76c333ce4c9ea 100644 --- a/app/code/Magento/SalesRule/Model/Data/Condition.php +++ b/app/code/Magento/SalesRule/Model/Data/Condition.php @@ -7,6 +7,8 @@ */ namespace Magento\SalesRule\Model\Data; +use Magento\Framework\Api\AbstractExtensibleObject; +use Magento\SalesRule\Api\Data\ConditionExtensionInterface; use Magento\SalesRule\Api\Data\ConditionInterface; /** @@ -14,8 +16,7 @@ * * @codeCoverageIgnore */ -class Condition extends \Magento\Framework\Api\AbstractExtensibleObject implements - \Magento\SalesRule\Api\Data\ConditionInterface +class Condition extends AbstractExtensibleObject implements ConditionInterface { const KEY_CONDITION_TYPE = 'condition_type'; const KEY_CONDITIONS = 'conditions'; @@ -151,7 +152,7 @@ public function setValue($value) /** * {@inheritdoc} * - * @return \Magento\SalesRule\Api\Data\ConditionExtensionInterface|null + * @return ConditionExtensionInterface|null */ public function getExtensionAttributes() { @@ -161,11 +162,11 @@ public function getExtensionAttributes() /** * {@inheritdoc} * - * @param \Magento\SalesRule\Api\Data\ConditionExtensionInterface $extensionAttributes + * @param ConditionExtensionInterface $extensionAttributes * @return $this */ public function setExtensionAttributes( - \Magento\SalesRule\Api\Data\ConditionExtensionInterface $extensionAttributes + ConditionExtensionInterface $extensionAttributes ) { return $this->_setExtensionAttributes($extensionAttributes); } diff --git a/app/code/Magento/SalesRule/Model/Data/CouponGenerationSpec.php b/app/code/Magento/SalesRule/Model/Data/CouponGenerationSpec.php index 69cb0b345c68a..7688427774a29 100644 --- a/app/code/Magento/SalesRule/Model/Data/CouponGenerationSpec.php +++ b/app/code/Magento/SalesRule/Model/Data/CouponGenerationSpec.php @@ -7,13 +7,16 @@ */ namespace Magento\SalesRule\Model\Data; +use Magento\Framework\Api\AbstractExtensibleObject; +use Magento\SalesRule\Api\Data\CouponGenerationSpecExtensionInterface; +use Magento\SalesRule\Api\Data\CouponGenerationSpecInterface; + /** * Class CouponGenerationSpec * * @codeCoverageIgnore */ -class CouponGenerationSpec extends \Magento\Framework\Api\AbstractExtensibleObject implements - \Magento\SalesRule\Api\Data\CouponGenerationSpecInterface +class CouponGenerationSpec extends AbstractExtensibleObject implements CouponGenerationSpecInterface { const KEY_RULE_ID = 'rule_id'; const KEY_FORMAT = 'format'; @@ -195,7 +198,7 @@ public function setDelimiter($delimiter) /** * Retrieve existing extension attributes object or create a new one. * - * @return \Magento\SalesRule\Api\Data\CouponGenerationSpecExtensionInterface|null + * @return CouponGenerationSpecExtensionInterface|null */ public function getExtensionAttributes() { @@ -205,11 +208,11 @@ public function getExtensionAttributes() /** * Set an extension attributes object. * - * @param \Magento\SalesRule\Api\Data\CouponGenerationSpecExtensionInterface $extensionAttributes + * @param CouponGenerationSpecExtensionInterface $extensionAttributes * @return $this */ public function setExtensionAttributes( - \Magento\SalesRule\Api\Data\CouponGenerationSpecExtensionInterface $extensionAttributes + CouponGenerationSpecExtensionInterface $extensionAttributes ) { return $this->_setExtensionAttributes($extensionAttributes); } diff --git a/app/code/Magento/SalesRule/Model/Data/CouponMassDeleteResult.php b/app/code/Magento/SalesRule/Model/Data/CouponMassDeleteResult.php index 5b1ec1e27a000..92f92f73e9086 100644 --- a/app/code/Magento/SalesRule/Model/Data/CouponMassDeleteResult.php +++ b/app/code/Magento/SalesRule/Model/Data/CouponMassDeleteResult.php @@ -5,13 +5,15 @@ */ namespace Magento\SalesRule\Model\Data; +use Magento\Framework\Api\AbstractSimpleObject; +use Magento\SalesRule\Api\Data\CouponMassDeleteResultInterface; + /** * Class CouponMassDeleteResult * * @codeCoverageIgnore */ -class CouponMassDeleteResult extends \Magento\Framework\Api\AbstractSimpleObject implements - \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterface +class CouponMassDeleteResult extends AbstractSimpleObject implements CouponMassDeleteResultInterface { const FAILED_ITEMS = 'failed_items'; const MISSING_ITEMS = 'missing_items'; diff --git a/app/code/Magento/SalesRule/Model/Data/DiscountData.php b/app/code/Magento/SalesRule/Model/Data/DiscountData.php index cfad4b5c09c55..b2658f1951efc 100644 --- a/app/code/Magento/SalesRule/Model/Data/DiscountData.php +++ b/app/code/Magento/SalesRule/Model/Data/DiscountData.php @@ -7,13 +7,14 @@ namespace Magento\SalesRule\Model\Data; +use Magento\Framework\Api\AbstractExtensibleObject; use Magento\SalesRule\Api\Data\DiscountDataInterface; use Magento\Framework\Api\ExtensionAttributesInterface; /** * Discount Data Model */ -class DiscountData extends \Magento\Framework\Api\AbstractExtensibleObject implements DiscountDataInterface +class DiscountData extends AbstractExtensibleObject implements DiscountDataInterface { const AMOUNT = 'amount'; diff --git a/app/code/Magento/SalesRule/Model/Data/RuleDiscount.php b/app/code/Magento/SalesRule/Model/Data/RuleDiscount.php index aaf657c06b4fc..32acc2e81fa9e 100644 --- a/app/code/Magento/SalesRule/Model/Data/RuleDiscount.php +++ b/app/code/Magento/SalesRule/Model/Data/RuleDiscount.php @@ -10,6 +10,7 @@ use Magento\Framework\Api\ExtensionAttributesInterface; use Magento\SalesRule\Api\Data\RuleDiscountInterface; use Magento\Framework\Api\AbstractExtensibleObject; +use Magento\SalesRule\Model\Rule\Action\Discount\Data as DiscountData; /** * Data Model for Rule Discount @@ -23,7 +24,7 @@ class RuleDiscount extends AbstractExtensibleObject implements RuleDiscountInter /** * Get Discount Data * - * @return \Magento\SalesRule\Model\Rule\Action\Discount\Data + * @return DiscountData */ public function getDiscountData() { diff --git a/app/code/Magento/SalesRule/Model/Data/RuleLabel.php b/app/code/Magento/SalesRule/Model/Data/RuleLabel.php index a491c3ea225cb..2a7e04c097886 100644 --- a/app/code/Magento/SalesRule/Model/Data/RuleLabel.php +++ b/app/code/Magento/SalesRule/Model/Data/RuleLabel.php @@ -7,13 +7,16 @@ */ namespace Magento\SalesRule\Model\Data; +use Magento\Framework\Api\AbstractExtensibleObject; +use Magento\SalesRule\Api\Data\RuleLabelExtensionInterface; +use Magento\SalesRule\Api\Data\RuleLabelInterface; + /** * Class Rule label * * @codeCoverageIgnore */ -class RuleLabel extends \Magento\Framework\Api\AbstractExtensibleObject implements - \Magento\SalesRule\Api\Data\RuleLabelInterface +class RuleLabel extends AbstractExtensibleObject implements RuleLabelInterface { const KEY_STORE_ID = 'store_id'; const KEY_STORE_LABEL = 'store_label'; @@ -63,7 +66,7 @@ public function setStoreLabel($storeLabel) /** * {@inheritdoc} * - * @return \Magento\SalesRule\Api\Data\RuleLabelExtensionInterface|null + * @return RuleLabelExtensionInterface|null */ public function getExtensionAttributes() { @@ -73,11 +76,11 @@ public function getExtensionAttributes() /** * {@inheritdoc} * - * @param \Magento\SalesRule\Api\Data\RuleLabelExtensionInterface $extensionAttributes + * @param RuleLabelExtensionInterface $extensionAttributes * @return $this */ public function setExtensionAttributes( - \Magento\SalesRule\Api\Data\RuleLabelExtensionInterface $extensionAttributes + RuleLabelExtensionInterface $extensionAttributes ) { return $this->_setExtensionAttributes($extensionAttributes); } diff --git a/app/code/Magento/SalesRule/Model/DeltaPriceRound.php b/app/code/Magento/SalesRule/Model/DeltaPriceRound.php index b080a93ee4c9f..39a333725194a 100644 --- a/app/code/Magento/SalesRule/Model/DeltaPriceRound.php +++ b/app/code/Magento/SalesRule/Model/DeltaPriceRound.php @@ -14,11 +14,6 @@ */ class DeltaPriceRound { - /** - * @var PriceCurrencyInterface - */ - private $priceCurrency; - /** * @var float[] */ @@ -27,9 +22,9 @@ class DeltaPriceRound /** * @param PriceCurrencyInterface $priceCurrency */ - public function __construct(PriceCurrencyInterface $priceCurrency) - { - $this->priceCurrency = $priceCurrency; + public function __construct( + private readonly PriceCurrencyInterface $priceCurrency + ) { } /** diff --git a/app/code/Magento/SalesRule/Model/Plugin/QuoteConfigProductAttributes.php b/app/code/Magento/SalesRule/Model/Plugin/QuoteConfigProductAttributes.php index 61755966ad0f1..8689175688052 100644 --- a/app/code/Magento/SalesRule/Model/Plugin/QuoteConfigProductAttributes.php +++ b/app/code/Magento/SalesRule/Model/Plugin/QuoteConfigProductAttributes.php @@ -11,11 +11,6 @@ class QuoteConfigProductAttributes { - /** - * @var RuleResource - */ - private $ruleResource; - /** * @var array|null */ @@ -24,9 +19,9 @@ class QuoteConfigProductAttributes /** * @param RuleResource $ruleResource */ - public function __construct(RuleResource $ruleResource) - { - $this->ruleResource = $ruleResource; + public function __construct( + private readonly RuleResource $ruleResource + ) { } /** diff --git a/app/code/Magento/SalesRule/Model/Plugin/ResourceModel/Rule.php b/app/code/Magento/SalesRule/Model/Plugin/ResourceModel/Rule.php index fa12693926816..0b23d8da60eaa 100644 --- a/app/code/Magento/SalesRule/Model/Plugin/ResourceModel/Rule.php +++ b/app/code/Magento/SalesRule/Model/Plugin/ResourceModel/Rule.php @@ -5,6 +5,10 @@ */ namespace Magento\SalesRule\Model\Plugin\ResourceModel; +use Closure; +use Magento\Framework\Model\AbstractModel; +use Magento\SalesRule\Model\ResourceModel\Rule as ResourceRule; + /** * Class Rule * @package Magento\SalesRule\Model\Plugin\ResourceModel @@ -13,31 +17,31 @@ class Rule { /** - * @param \Magento\SalesRule\Model\ResourceModel\Rule $subject - * @param \Closure $proceed - * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\AbstractModel + * @param ResourceRule $subject + * @param Closure $proceed + * @param AbstractModel $object + * @return AbstractModel * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundLoadCustomerGroupIds( - \Magento\SalesRule\Model\ResourceModel\Rule $subject, - \Closure $proceed, - \Magento\Framework\Model\AbstractModel $object + ResourceRule $subject, + Closure $proceed, + AbstractModel $object ) { return $subject; } /** - * @param \Magento\SalesRule\Model\ResourceModel\Rule $subject - * @param \Closure $proceed - * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\AbstractModel + * @param ResourceRule $subject + * @param Closure $proceed + * @param AbstractModel $object + * @return AbstractModel * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundLoadWebsiteIds( - \Magento\SalesRule\Model\ResourceModel\Rule $subject, - \Closure $proceed, - \Magento\Framework\Model\AbstractModel $object + ResourceRule $subject, + Closure $proceed, + AbstractModel $object ) { return $subject; } diff --git a/app/code/Magento/SalesRule/Model/Plugin/Rule.php b/app/code/Magento/SalesRule/Model/Plugin/Rule.php index 668ab767ca2dc..f3536646bd932 100644 --- a/app/code/Magento/SalesRule/Model/Plugin/Rule.php +++ b/app/code/Magento/SalesRule/Model/Plugin/Rule.php @@ -5,17 +5,20 @@ */ namespace Magento\SalesRule\Model\Plugin; +use Closure; +use Magento\SalesRule\Model\Rule as ModelRule; + class Rule { /** - * @param \Magento\SalesRule\Model\Rule $subject - * @param \Closure $proceed - * @return \Magento\SalesRule\Model\Rule + * @param ModelRule $subject + * @param Closure $proceed + * @return ModelRule * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundLoadRelations( - \Magento\SalesRule\Model\Rule $subject, - \Closure $proceed + ModelRule $subject, + Closure $proceed ) { return $subject; } diff --git a/app/code/Magento/SalesRule/Model/Queue/Consumer/RuleQuoteRecollectTotals.php b/app/code/Magento/SalesRule/Model/Queue/Consumer/RuleQuoteRecollectTotals.php index 4b57759c0b75a..82a0a317ae195 100644 --- a/app/code/Magento/SalesRule/Model/Queue/Consumer/RuleQuoteRecollectTotals.php +++ b/app/code/Magento/SalesRule/Model/Queue/Consumer/RuleQuoteRecollectTotals.php @@ -7,6 +7,7 @@ namespace Magento\SalesRule\Model\Queue\Consumer; +use Exception; use Magento\AsynchronousOperations\Api\Data\OperationInterface; use Magento\Framework\DB\Adapter\ConnectionException; use Magento\Framework\DB\Adapter\DeadlockException; @@ -22,26 +23,6 @@ */ class RuleQuoteRecollectTotals { - /** - * @var RuleQuoteRecollectTotalsInterface - */ - private $ruleQuoteRecollectTotals; - - /** - * @var SerializerInterface - */ - private $serializer; - - /** - * @var LoggerInterface - */ - private $logger; - - /** - * @var EntityManager - */ - private $entityManager; - /** * @param RuleQuoteRecollectTotalsInterface $ruleQuoteRecollectTotals * @param LoggerInterface $logger @@ -49,15 +30,11 @@ class RuleQuoteRecollectTotals * @param EntityManager $entityManager */ public function __construct( - RuleQuoteRecollectTotalsInterface $ruleQuoteRecollectTotals, - LoggerInterface $logger, - SerializerInterface $serializer, - EntityManager $entityManager + private readonly RuleQuoteRecollectTotalsInterface $ruleQuoteRecollectTotals, + private readonly LoggerInterface $logger, + private readonly SerializerInterface $serializer, + private readonly EntityManager $entityManager ) { - $this->ruleQuoteRecollectTotals = $ruleQuoteRecollectTotals; - $this->logger = $logger; - $this->serializer = $serializer; - $this->entityManager = $entityManager; } /** @@ -65,7 +42,7 @@ public function __construct( * * @param OperationInterface $operation * @return void - * @throws \Exception + * @throws Exception */ public function process(OperationInterface $operation): void { diff --git a/app/code/Magento/SalesRule/Model/Quote/Address/Total/ShippingDiscount.php b/app/code/Magento/SalesRule/Model/Quote/Address/Total/ShippingDiscount.php index 9f116cedcb340..c9b479e6295bf 100644 --- a/app/code/Magento/SalesRule/Model/Quote/Address/Total/ShippingDiscount.php +++ b/app/code/Magento/SalesRule/Model/Quote/Address/Total/ShippingDiscount.php @@ -10,25 +10,21 @@ use Magento\Quote\Api\Data\ShippingAssignmentInterface as ShippingAssignment; use Magento\Quote\Model\Quote; use Magento\Quote\Model\Quote\Address\Total; +use Magento\Quote\Model\Quote\Address\Total\AbstractTotal; use Magento\SalesRule\Model\Quote\Discount as DiscountCollector; use Magento\SalesRule\Model\Validator; /** * Total collector for shipping discounts. */ -class ShippingDiscount extends \Magento\Quote\Model\Quote\Address\Total\AbstractTotal +class ShippingDiscount extends AbstractTotal { - /** - * @var Validator - */ - private $calculator; - /** * @param Validator $calculator */ - public function __construct(Validator $calculator) - { - $this->calculator = $calculator; + public function __construct( + private readonly Validator $calculator + ) { } /** @@ -82,8 +78,8 @@ public function collect(Quote $quote, ShippingAssignment $shippingAssignment, To /** * @inheritdoc * - * @param \Magento\Quote\Model\Quote $quote - * @param \Magento\Quote\Model\Quote\Address\Total $total + * @param Quote $quote + * @param Total $total * @return array * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ diff --git a/app/code/Magento/SalesRule/Model/Quote/ChildrenValidationLocator.php b/app/code/Magento/SalesRule/Model/Quote/ChildrenValidationLocator.php index af1f61c187129..430975f872aa3 100644 --- a/app/code/Magento/SalesRule/Model/Quote/ChildrenValidationLocator.php +++ b/app/code/Magento/SalesRule/Model/Quote/ChildrenValidationLocator.php @@ -15,11 +15,6 @@ */ class ChildrenValidationLocator { - /** - * @var array - */ - private $productTypeChildrenValidationMap; - /** * @param array $productTypeChildrenValidationMap *
@@ -30,9 +25,8 @@ class ChildrenValidationLocator
      * 
*/ public function __construct( - array $productTypeChildrenValidationMap = [] + private readonly array $productTypeChildrenValidationMap = [] ) { - $this->productTypeChildrenValidationMap = $productTypeChildrenValidationMap; } /** diff --git a/app/code/Magento/SalesRule/Model/Quote/Discount.php b/app/code/Magento/SalesRule/Model/Quote/Discount.php index 3775bc9122cb4..3cac3b9e14932 100644 --- a/app/code/Magento/SalesRule/Model/Quote/Discount.php +++ b/app/code/Magento/SalesRule/Model/Quote/Discount.php @@ -41,45 +41,13 @@ class Discount extends AbstractTotal */ protected $calculator; - /** - * Core event manager proxy - * - * @var ManagerInterface - */ - protected $eventManager = null; - - /** - * @var StoreManagerInterface - */ - protected $storeManager; - - /** - * @var PriceCurrencyInterface - */ - protected $priceCurrency; - - /** - * @var RuleDiscountInterfaceFactory - */ - private $discountInterfaceFactory; - - /** - * @var DiscountDataInterfaceFactory - */ - private $discountDataInterfaceFactory; - - /** - * @var RulesApplier|null - */ - private $rulesApplier; - /** * @var array */ private $addressDiscountAggregator = []; /** - * @param ManagerInterface $eventManager + * @param ManagerInterface $eventManager Core event manager proxy * @param StoreManagerInterface $storeManager * @param Validator $validator * @param PriceCurrencyInterface $priceCurrency @@ -88,19 +56,16 @@ class Discount extends AbstractTotal * @param RulesApplier|null $rulesApplier */ public function __construct( - ManagerInterface $eventManager, - StoreManagerInterface $storeManager, + protected readonly ManagerInterface $eventManager, + protected readonly StoreManagerInterface $storeManager, Validator $validator, - PriceCurrencyInterface $priceCurrency, - RuleDiscountInterfaceFactory $discountInterfaceFactory = null, - DiscountDataInterfaceFactory $discountDataInterfaceFactory = null, - RulesApplier $rulesApplier = null + protected readonly PriceCurrencyInterface $priceCurrency, + private ?RuleDiscountInterfaceFactory $discountInterfaceFactory = null, + private ?DiscountDataInterfaceFactory $discountDataInterfaceFactory = null, + private ?RulesApplier $rulesApplier = null ) { $this->setCode(self::COLLECTOR_TYPE_CODE); - $this->eventManager = $eventManager; $this->calculator = $validator; - $this->storeManager = $storeManager; - $this->priceCurrency = $priceCurrency; $this->discountInterfaceFactory = $discountInterfaceFactory ?: ObjectManager::getInstance()->get(RuleDiscountInterfaceFactory::class); $this->discountDataInterfaceFactory = $discountDataInterfaceFactory @@ -247,7 +212,7 @@ protected function aggregateItemDiscount( * @param AbstractItem $item * @return $this * @deprecated No longer used. - * @see \Magento\SalesRule\Model\RulesApplier::applyRule() + * @see RulesApplier::applyRule */ protected function distributeDiscount(AbstractItem $item) { diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php index 42498448cd13f..3ca37ed903a1b 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php @@ -5,15 +5,19 @@ */ namespace Magento\SalesRule\Model\ResourceModel; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Model\AbstractModel; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; +use Magento\SalesRule\Model\Coupon as ModelCoupon; +use Magento\SalesRule\Model\Rule as ModelRule; +use Magento\SalesRule\Model\Spi\CouponResourceInterface; /** * SalesRule Resource Coupon * * @author Magento Core Team */ -class Coupon extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements - \Magento\SalesRule\Model\Spi\CouponResourceInterface +class Coupon extends AbstractDb implements CouponResourceInterface { /** * Constructor adds unique fields @@ -43,16 +47,16 @@ public function _beforeSave(AbstractModel $object) /** * Load primary coupon (is_primary = 1) for specified rule * - * @param \Magento\SalesRule\Model\Coupon $object - * @param \Magento\SalesRule\Model\Rule|int $rule + * @param ModelCoupon $object + * @param ModelRule|int $rule * @return bool - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException */ - public function loadPrimaryByRule(\Magento\SalesRule\Model\Coupon $object, $rule) + public function loadPrimaryByRule(ModelCoupon $object, $rule) { $connection = $this->getConnection(); - if ($rule instanceof \Magento\SalesRule\Model\Rule) { + if ($rule instanceof ModelRule) { $ruleId = $rule->getId(); } else { $ruleId = (int)$rule; @@ -100,10 +104,10 @@ public function exists($code) /** * Update auto generated Specific Coupon if its rule changed * - * @param \Magento\SalesRule\Model\Rule $rule + * @param ModelRule $rule * @return $this */ - public function updateSpecificCoupons(\Magento\SalesRule\Model\Rule $rule) + public function updateSpecificCoupons(ModelRule $rule) { if (!$rule || !$rule->getId() || !$rule->hasDataChanges()) { return $this; diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php index 22f87a6f29016..00ba948fe5758 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php @@ -7,6 +7,8 @@ use Magento\Backend\Block\Widget\Grid\Column; use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; +use Magento\SalesRule\Model\Coupon as ModelCoupon; +use Magento\SalesRule\Model\ResourceModel\Coupon as ResourceCoupon; use Magento\SalesRule\Model\Rule; /** @@ -24,7 +26,7 @@ class Collection extends AbstractCollection protected function _construct() { parent::_construct(); - $this->_init(\Magento\SalesRule\Model\Coupon::class, \Magento\SalesRule\Model\ResourceModel\Coupon::class); + $this->_init(ModelCoupon::class, ResourceCoupon::class); } /** diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php index 39a2f8855e246..1992a719ebd48 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php @@ -5,12 +5,16 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Coupon; +use Magento\Framework\DataObject; +use Magento\Framework\Model\AbstractModel; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; + /** * SalesRule Model Resource Coupon_Usage * * @author Magento Core Team */ -class Usage extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb +class Usage extends AbstractDb { /** * Constructor @@ -62,12 +66,12 @@ public function updateCustomerCouponTimesUsed($customerId, $couponId, $increment /** * Load an object by customer_id & coupon_id * - * @param \Magento\Framework\DataObject $object + * @param DataObject $object * @param int $customerId * @param mixed $couponId * @return $this */ - public function loadByCustomerCoupon(\Magento\Framework\DataObject $object, $customerId, $couponId) + public function loadByCustomerCoupon(DataObject $object, $customerId, $couponId) { $connection = $this->getConnection(); if ($connection && $couponId && $customerId) { @@ -83,7 +87,7 @@ public function loadByCustomerCoupon(\Magento\Framework\DataObject $object, $cus $object->setData($data); } } - if ($object instanceof \Magento\Framework\Model\AbstractModel) { + if ($object instanceof AbstractModel) { $this->_afterLoad($object); } return $this; diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/ReadHandler.php b/app/code/Magento/SalesRule/Model/ResourceModel/ReadHandler.php index 22d8b8446538c..7757bf5db2b5d 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/ReadHandler.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/ReadHandler.php @@ -5,6 +5,7 @@ */ namespace Magento\SalesRule\Model\ResourceModel; +use Exception; use Magento\Framework\EntityManager\MetadataPool; use Magento\Framework\EntityManager\Operation\AttributeInterface; @@ -13,26 +14,14 @@ */ class ReadHandler implements AttributeInterface { - /** - * @var Rule - */ - protected $ruleResource; - - /** - * @var MetadataPool - */ - protected $metadataPool; - /** * @param Rule $ruleResource * @param MetadataPool $metadataPool */ public function __construct( - Rule $ruleResource, - MetadataPool $metadataPool + protected readonly Rule $ruleResource, + protected readonly MetadataPool $metadataPool ) { - $this->ruleResource = $ruleResource; - $this->metadataPool = $metadataPool; } /** @@ -42,7 +31,7 @@ public function __construct( * @param array $entityData * @param array $arguments * @return array - * @throws \Exception + * @throws Exception * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function execute($entityType, $entityData, $arguments = []) diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Collection.php index 049547e65c4a2..2db37f5225e55 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Collection.php @@ -5,12 +5,20 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Report; +use Magento\Framework\Data\Collection\Db\FetchStrategyInterface; +use Magento\Framework\Data\Collection\EntityFactory; +use Magento\Framework\DB\Adapter\AdapterInterface; +use Magento\Framework\Event\ManagerInterface; +use Magento\Sales\Model\ResourceModel\Report as ResourceReport; +use Magento\Sales\Model\ResourceModel\Report\Collection\AbstractCollection; +use Psr\Log\LoggerInterface; + /** * Sales report coupons collection * * @author Magento Core Team */ -class Collection extends \Magento\Sales\Model\ResourceModel\Report\Collection\AbstractCollection +class Collection extends AbstractCollection { /** * Period format for report (day, month, year) @@ -41,27 +49,27 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Report\Collection\Ab protected $_rulesIdsFilter; /** - * @var \Magento\SalesRule\Model\ResourceModel\Report\RuleFactory $ruleFactory + * @var RuleFactory $ruleFactory */ protected $_ruleFactory; /** - * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory - * @param \Psr\Log\LoggerInterface $logger - * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy - * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\SalesRule\Model\ResourceModel\Report\RuleFactory $ruleFactory - * @param \Magento\Sales\Model\ResourceModel\Report $resource + * @param EntityFactory $entityFactory + * @param LoggerInterface $logger + * @param FetchStrategyInterface $fetchStrategy + * @param ManagerInterface $eventManager + * @param RuleFactory $ruleFactory + * @param ResourceReport $resource * @param mixed $connection */ public function __construct( - \Magento\Framework\Data\Collection\EntityFactory $entityFactory, - \Psr\Log\LoggerInterface $logger, - \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, - \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Sales\Model\ResourceModel\Report $resource, - \Magento\SalesRule\Model\ResourceModel\Report\RuleFactory $ruleFactory, - \Magento\Framework\DB\Adapter\AdapterInterface $connection = null + EntityFactory $entityFactory, + LoggerInterface $logger, + FetchStrategyInterface $fetchStrategy, + ManagerInterface $eventManager, + ResourceReport $resource, + RuleFactory $ruleFactory, + AdapterInterface $connection = null ) { $this->_ruleFactory = $ruleFactory; $resource->init($this->_aggregationTable); @@ -81,7 +89,7 @@ protected function _getSelectedColumns() } elseif ('year' == $this->_period) { $this->_periodFormat = $connection->getDateExtractSql( 'period', - \Magento\Framework\DB\Adapter\AdapterInterface::INTERVAL_YEAR + AdapterInterface::INTERVAL_YEAR ); } else { $this->_periodFormat = $connection->getDateFormatSql('period', '%Y-%m-%d'); @@ -178,7 +186,7 @@ protected function _applyRulesFilter() /** * Apply collection custom filter * - * @return \Magento\Sales\Model\ResourceModel\Report\Collection\AbstractCollection + * @return AbstractCollection */ protected function _applyCustomFilter() { diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php index 907d2c0494364..22bace4f18625 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php @@ -5,43 +5,55 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Report; +use Magento\Framework\Model\ResourceModel\Db\Context as DbContext; +use Magento\Framework\Stdlib\DateTime\DateTime; +use Magento\Framework\Stdlib\DateTime\Timezone\Validator; +use Magento\Framework\Stdlib\DateTime\TimezoneInterface; +use Magento\Reports\Model\Flag; +use Magento\Reports\Model\FlagFactory; +use Magento\Reports\Model\ResourceModel\Report\AbstractReport; +use Magento\SalesRule\Model\ResourceModel\Report\Rule\CreatedatFactory; +use Magento\SalesRule\Model\ResourceModel\Report\Rule\UpdatedatFactory; +use Psr\Log\LoggerInterface; +use Zend_Db_Expr; + /** * Rule report resource model * * @author Magento Core Team */ -class Rule extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport +class Rule extends AbstractReport { /** - * @var \Magento\SalesRule\Model\ResourceModel\Report\Rule\CreatedatFactory + * @var CreatedatFactory */ protected $_createdatFactory; /** - * @var \Magento\SalesRule\Model\ResourceModel\Report\Rule\UpdatedatFactory + * @var UpdatedatFactory */ protected $_updatedatFactory; /** - * @param \Magento\Framework\Model\ResourceModel\Db\Context $context - * @param \Psr\Log\LoggerInterface $logger - * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate - * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory - * @param \Magento\Framework\Stdlib\DateTime\Timezone\Validator $timezoneValidator - * @param \Magento\Framework\Stdlib\DateTime\DateTime $dateTime - * @param \Magento\SalesRule\Model\ResourceModel\Report\Rule\CreatedatFactory $createdatFactory - * @param \Magento\SalesRule\Model\ResourceModel\Report\Rule\UpdatedatFactory $updatedatFactory + * @param DbContext $context + * @param LoggerInterface $logger + * @param TimezoneInterface $localeDate + * @param FlagFactory $reportsFlagFactory + * @param Validator $timezoneValidator + * @param DateTime $dateTime + * @param CreatedatFactory $createdatFactory + * @param UpdatedatFactory $updatedatFactory * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ResourceModel\Db\Context $context, - \Psr\Log\LoggerInterface $logger, - \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, - \Magento\Reports\Model\FlagFactory $reportsFlagFactory, - \Magento\Framework\Stdlib\DateTime\Timezone\Validator $timezoneValidator, - \Magento\Framework\Stdlib\DateTime\DateTime $dateTime, - \Magento\SalesRule\Model\ResourceModel\Report\Rule\CreatedatFactory $createdatFactory, - \Magento\SalesRule\Model\ResourceModel\Report\Rule\UpdatedatFactory $updatedatFactory, + DbContext $context, + LoggerInterface $logger, + TimezoneInterface $localeDate, + FlagFactory $reportsFlagFactory, + Validator $timezoneValidator, + DateTime $dateTime, + CreatedatFactory $createdatFactory, + UpdatedatFactory $updatedatFactory, $connectionName = null ) { parent::__construct( @@ -78,7 +90,7 @@ public function aggregate($from = null, $to = null) { $this->_createdatFactory->create()->aggregate($from, $to); $this->_updatedatFactory->create()->aggregate($from, $to); - $this->_setFlagData(\Magento\Reports\Model\Flag::REPORT_COUPONS_FLAG_CODE); + $this->_setFlagData(Flag::REPORT_COUPONS_FLAG_CODE); return $this; } @@ -95,7 +107,7 @@ public function getUniqRulesNamesList() $tableName = $resourceModel->getMainTable(); $select = $connection->select()->from( $tableName, - new \Zend_Db_Expr('DISTINCT rule_name') + new Zend_Db_Expr('DISTINCT rule_name') )->where( 'rule_name IS NOT NULL' )->where( diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Createdat.php b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Createdat.php index 342fa8363da09..16397c4aca9ef 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Createdat.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Createdat.php @@ -6,12 +6,16 @@ namespace Magento\SalesRule\Model\ResourceModel\Report\Rule; +use Exception; +use Magento\Reports\Model\ResourceModel\Report\AbstractReport; +use Zend_Db_Expr; + /** * Rule report resource model with aggregation by created at * * @author Magento Core Team */ -class Createdat extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport +class Createdat extends AbstractReport { /** * Resource Report Rule constructor @@ -38,7 +42,7 @@ public function aggregate($from = null, $to = null) /** * Aggregate coupons reports by orders * - * @throws \Exception + * @throws Exception * @param string $aggregationField * @param mixed $from * @param mixed $to @@ -161,7 +165,7 @@ protected function _aggregateByOrder($aggregationField, $from, $to) $columns = [ 'period' => 'period', - 'store_id' => new \Zend_Db_Expr('0'), + 'store_id' => new Zend_Db_Expr('0'), 'order_status' => 'order_status', 'coupon_code' => 'coupon_code', 'rule_name' => 'rule_name', @@ -184,7 +188,7 @@ protected function _aggregateByOrder($aggregationField, $from, $to) $connection->query($select->insertFromSelect($table, array_keys($columns))); $connection->commit(); - } catch (\Exception $e) { + } catch (Exception $e) { $connection->rollBack(); throw $e; } diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Updatedat.php b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Updatedat.php index 2f599dd0d78ae..9a984721f59f8 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Updatedat.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule/Updatedat.php @@ -10,7 +10,7 @@ * * @author Magento Core Team */ -class Updatedat extends \Magento\SalesRule\Model\ResourceModel\Report\Rule\Createdat +class Updatedat extends Createdat { /** * Resource Report Rule constructor diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Updatedat/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Updatedat/Collection.php index 0e408787beb7f..413fdd5ad42f6 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Updatedat/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Updatedat/Collection.php @@ -5,12 +5,14 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Report\Updatedat; +use Magento\SalesRule\Model\ResourceModel\Report\Collection as ReportCollection; + /** * Sales report coupons collection * * @author Magento Core Team */ -class Collection extends \Magento\SalesRule\Model\ResourceModel\Report\Collection +class Collection extends ReportCollection { /** * Aggregated Data Table diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php index d65021ed82a2e..f46e53a1d1d20 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php @@ -5,13 +5,21 @@ */ namespace Magento\SalesRule\Model\ResourceModel; +use Exception; use Magento\Framework\App\ObjectManager; +use Magento\Framework\DataObject; use Magento\Framework\EntityManager\EntityManager; use Magento\Framework\EntityManager\MetadataPool; use Magento\Framework\Model\AbstractModel; +use Magento\Framework\Model\ResourceModel\Db\Context as DbContext; use Magento\Framework\Serialize\Serializer\Json; +use Magento\Framework\Stdlib\StringUtils; use Magento\Rule\Model\ResourceModel\AbstractResource; use Magento\SalesRule\Api\Data\RuleInterface; +use Magento\SalesRule\Model\ResourceModel\Coupon as ResourceCoupon; +use Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap; +use Magento\SalesRule\Model\Rule as ModelRule; +use Zend_Db_Expr; /** * Sales Rule resource model @@ -37,14 +45,7 @@ class Rule extends AbstractResource protected $websiteIds = []; /** - * Magento string lib - * - * @var \Magento\Framework\Stdlib\StringUtils - */ - protected $string; - - /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon + * @var ResourceCoupon */ protected $_resourceCoupon; @@ -53,39 +54,33 @@ class Rule extends AbstractResource */ protected $entityManager; - /** - * @var MetadataPool - */ - private $metadataPool; - /** * @var string */ private $linkedField; /** - * @param \Magento\Framework\Model\ResourceModel\Db\Context $context - * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\SalesRule\Model\ResourceModel\Coupon $resourceCoupon + * @param DbContext $context + * @param StringUtils $string Magento string lib + * @param ResourceCoupon $resourceCoupon * @param string $connectionName - * @param \Magento\Framework\DataObject|null $associatedEntityMapInstance + * @param DataObject|null $associatedEntityMapInstance * @param Json $serializer Optional parameter for backward compatibility * @param MetadataPool $metadataPool Optional parameter for backward compatibility */ public function __construct( - \Magento\Framework\Model\ResourceModel\Db\Context $context, - \Magento\Framework\Stdlib\StringUtils $string, - \Magento\SalesRule\Model\ResourceModel\Coupon $resourceCoupon, + DbContext $context, + protected readonly StringUtils $string, + ResourceCoupon $resourceCoupon, $connectionName = null, - \Magento\Framework\DataObject $associatedEntityMapInstance = null, + DataObject $associatedEntityMapInstance = null, Json $serializer = null, - MetadataPool $metadataPool = null + private ?MetadataPool $metadataPool = null ) { - $this->string = $string; $this->_resourceCoupon = $resourceCoupon; $associatedEntitiesMapInstance = $associatedEntityMapInstance ?: ObjectManager::getInstance()->get( // phpstan:ignore "Class Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap not found." - \Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap::class + AssociatedEntityMap::class ); $this->_associatedEntitiesMap = $associatedEntitiesMapInstance->getData(); $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); @@ -135,13 +130,13 @@ public function loadWebsiteIds(AbstractModel $object) /** * Prepare sales rule's discount quantity * - * @param \Magento\Framework\Model\AbstractModel $object + * @param AbstractModel $object * @return $this */ public function _beforeSave(AbstractModel $object) { if (!$object->getDiscountQty()) { - $object->setDiscountQty(new \Zend_Db_Expr('NULL')); + $object->setDiscountQty(new Zend_Db_Expr('NULL')); } parent::_beforeSave($object); @@ -168,7 +163,7 @@ public function load(AbstractModel $object, $value, $field = null) * Save rule's associated store labels. * Save product attributes used in rule. * - * @param \Magento\Framework\Model\AbstractModel $object + * @param AbstractModel $object * @return $this */ protected function _afterSave(AbstractModel $object) @@ -196,7 +191,7 @@ protected function _afterSave(AbstractModel $object) /** * Retrieve coupon/rule uses for specified customer * - * @param \Magento\SalesRule\Model\Rule $rule + * @param ModelRule $rule * @param int $customerId * @return string */ @@ -219,7 +214,7 @@ public function getCustomerUses($rule, $customerId) * * @param int $ruleId * @param array $labels - * @throws \Exception + * @throws Exception * @return $this */ public function saveStoreLabels($ruleId, $labels) @@ -249,7 +244,7 @@ public function saveStoreLabels($ruleId, $labels) [$this->getLinkField() . '=?' => $ruleId, 'store_id IN (?)' => $deleteByStoreIds] ); } - } catch (\Exception $e) { + } catch (Exception $e) { $connection->rollBack(); throw $e; } @@ -307,7 +302,7 @@ public function getActiveAttributes() $connection = $this->getConnection(); $select = $connection->select()->from( ['a' => $this->getTable('salesrule_product_attribute')], - new \Zend_Db_Expr('DISTINCT ea.attribute_code') + new Zend_Db_Expr('DISTINCT ea.attribute_code') )->joinInner( ['ea' => $this->getTable('eav_attribute')], 'ea.attribute_id = a.attribute_id', @@ -319,7 +314,7 @@ public function getActiveAttributes() /** * Save product attributes currently used in conditions and actions of rule * - * @param \Magento\SalesRule\Model\Rule $rule + * @param ModelRule $rule * @param mixed $attributes * @return $this */ @@ -386,10 +381,10 @@ public function getProductAttributes($serializedString) /** * Save cart rule * - * @param \Magento\Framework\Model\AbstractModel $object + * @param AbstractModel $object * @return $this */ - public function save(\Magento\Framework\Model\AbstractModel $object) + public function save(AbstractModel $object) { $this->getEntityManager()->save($object); return $this; @@ -398,7 +393,7 @@ public function save(\Magento\Framework\Model\AbstractModel $object) /** * Delete the object * - * @param \Magento\Framework\Model\AbstractModel $object + * @param AbstractModel $object * @return $this */ public function delete(AbstractModel $object) @@ -410,13 +405,13 @@ public function delete(AbstractModel $object) /** * Init EntityManager * - * @return \Magento\Framework\EntityManager\EntityManager + * @return EntityManager */ private function getEntityManager() { if (null === $this->entityManager) { - $this->entityManager = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Framework\EntityManager\EntityManager::class); + $this->entityManager = ObjectManager::getInstance() + ->get(EntityManager::class); } return $this->entityManager; } diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php index c7a3442306981..2fdb9518b3507 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php @@ -6,12 +6,28 @@ namespace Magento\SalesRule\Model\ResourceModel\Rule; +use Exception; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Data\Collection\Db\FetchStrategyInterface; +use Magento\Framework\Data\Collection\EntityFactory; +use Magento\Framework\DB\Adapter\AdapterInterface; use Magento\Framework\DB\Select; +use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; use Magento\Framework\Serialize\Serializer\Json; +use Magento\Framework\Stdlib\DateTime\TimezoneInterface; use Magento\Quote\Model\Quote\Address; +use Magento\Rule\Model\ResourceModel\Rule\Collection\AbstractCollection; use Magento\SalesRule\Api\Data\CouponInterface; use Magento\SalesRule\Model\Coupon; +use Magento\SalesRule\Model\ResourceModel\Rule as ResourceRule; use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule as ModelRule; +use Psr\Log\LoggerInterface; +use Zend_Db; +use Zend_Db_Expr; +use Zend_Db_Select_Exception; /** * Sales Rules resource collection model. @@ -20,7 +36,7 @@ * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @since 100.0.2 */ -class Collection extends \Magento\Rule\Model\ResourceModel\Rule\Collection\AbstractCollection +class Collection extends AbstractCollection { /** * Store associated with rule entities information map @@ -44,44 +60,39 @@ class Collection extends \Magento\Rule\Model\ResourceModel\Rule\Collection\Abstr protected $_eventObject = 'rule_collection'; /** - * @var \Magento\SalesRule\Model\ResourceModel\Rule\DateApplier + * @var DateApplier * @since 100.1.0 */ protected $dateApplier; /** - * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface + * @var TimezoneInterface */ protected $_date; /** - * @var Json $serializer - */ - private $serializer; - - /** - * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory - * @param \Psr\Log\LoggerInterface $logger - * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy - * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $date + * @param EntityFactory $entityFactory + * @param LoggerInterface $logger + * @param FetchStrategyInterface $fetchStrategy + * @param ManagerInterface $eventManager + * @param TimezoneInterface $date * @param mixed $connection - * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource + * @param AbstractDb $resource * @param Json $serializer Optional parameter for backward compatibility */ public function __construct( - \Magento\Framework\Data\Collection\EntityFactory $entityFactory, - \Psr\Log\LoggerInterface $logger, - \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, - \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Stdlib\DateTime\TimezoneInterface $date, - \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null, - Json $serializer = null + EntityFactory $entityFactory, + LoggerInterface $logger, + FetchStrategyInterface $fetchStrategy, + ManagerInterface $eventManager, + TimezoneInterface $date, + AdapterInterface $connection = null, + AbstractDb $resource = null, + private ?Json $serializer = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->_date = $date; - $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()->get(Json::class); + $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); $this->_associatedEntitiesMap = $this->getAssociatedEntitiesMap(); } @@ -92,7 +103,7 @@ public function __construct( */ protected function _construct() { - $this->_init(\Magento\SalesRule\Model\Rule::class, \Magento\SalesRule\Model\ResourceModel\Rule::class); + $this->_init(ModelRule::class, ResourceRule::class); $this->_map['fields']['rule_id'] = 'main_table.rule_id'; } @@ -101,7 +112,7 @@ protected function _construct() * * @param string $entityType * @param string $objectField - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException * @return void * @since 100.1.0 */ @@ -139,7 +150,7 @@ function ($associatedEntity) use ($entityInfo, $ruleIdField, $objectField) { * Add website ids and customer group ids to rules data * * @return $this - * @throws \Exception + * @throws Exception * @since 100.1.0 */ protected function _afterLoad() @@ -161,7 +172,7 @@ protected function _afterLoad() * @param string $couponCode * @param string|null $now * @param Address $address allow extensions to further filter out rules based on quote address - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception * @use $this->addWebsiteGroupDateFilter() * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @return $this @@ -228,7 +239,7 @@ private function getNoCouponCodeSelect() Rule::COUPON_TYPE_NO_COUPON ); - $noCouponSelect->columns([Coupon::KEY_CODE => new \Zend_Db_Expr('NULL')]); + $noCouponSelect->columns([Coupon::KEY_CODE => new Zend_Db_Expr('NULL')]); return $noCouponSelect; } @@ -337,7 +348,7 @@ public function addWebsiteGroupDateFilter($websiteId, $customerGroupId, $now = n )->where( 'cgw.website_id IS NULL', $websiteId, - \Zend_Db::INT_TYPE + Zend_Db::INT_TYPE ); $this->getDateApplier()->applyDate($this->getSelect(), $now); @@ -451,9 +462,9 @@ public function addCustomerGroupFilter($customerGroupId) private function getAssociatedEntitiesMap() { if (!$this->_associatedEntitiesMap) { - $this->_associatedEntitiesMap = \Magento\Framework\App\ObjectManager::getInstance() + $this->_associatedEntitiesMap = ObjectManager::getInstance() // phpstan:ignore "Class Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap not found." - ->get(\Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap::class) + ->get(AssociatedEntityMap::class) ->getData(); } return $this->_associatedEntitiesMap; @@ -468,8 +479,8 @@ private function getAssociatedEntitiesMap() private function getDateApplier() { if (null === $this->dateApplier) { - $this->dateApplier = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\SalesRule\Model\ResourceModel\Rule\DateApplier::class); + $this->dateApplier = ObjectManager::getInstance() + ->get(DateApplier::class); } return $this->dateApplier; diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php index 374c3fe505cdc..7ad3504049f2e 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php @@ -5,12 +5,15 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Rule; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; +use Magento\SalesRule\Model\Rule\Customer as ModelRuleCustomer; + /** * SalesRule Rule Customer Model Resource * * @author Magento Core Team */ -class Customer extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb +class Customer extends AbstractDb { /** * Constructor @@ -25,7 +28,7 @@ protected function _construct() /** * Get rule usage record for a customer * - * @param \Magento\SalesRule\Model\Rule\Customer $rule + * @param ModelRuleCustomer $rule * @param int $customerId * @param int $ruleId * @return $this diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php index d4b92110b955b..bd8504c49cdfb 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php @@ -5,12 +5,16 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Rule\Customer; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; +use Magento\SalesRule\Model\ResourceModel\Rule\Customer as ResourceRuleCustomer; +use Magento\SalesRule\Model\Rule\Customer as ModelRuleCustomer; + /** * SalesRule Model Resource Rule Customer_Collection * * @author Magento Core Team */ -class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection +class Collection extends AbstractCollection { /** * Collection constructor @@ -21,8 +25,8 @@ protected function _construct() { parent::_construct(); $this->_init( - \Magento\SalesRule\Model\Rule\Customer::class, - \Magento\SalesRule\Model\ResourceModel\Rule\Customer::class + ModelRuleCustomer::class, + ResourceRuleCustomer::class ); } } diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/DateApplier.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/DateApplier.php index c3fa070ba98a4..d9738561d4e72 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/DateApplier.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/DateApplier.php @@ -5,6 +5,8 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Rule; +use Magento\Framework\DB\Select; + /** * Class DateApplier * adds the dates just for SalesRule @@ -12,7 +14,7 @@ class DateApplier { /** - * @param \Magento\Framework\DB\Select $select + * @param Select $select * @param int|string $now * @return void */ diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Quote/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Quote/Collection.php index 44ae394011720..380d20140e4a7 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Quote/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Quote/Collection.php @@ -7,7 +7,9 @@ */ namespace Magento\SalesRule\Model\ResourceModel\Rule\Quote; -class Collection extends \Magento\SalesRule\Model\ResourceModel\Rule\Collection +use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection; + +class Collection extends RuleCollection { /** * Add websites for load diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/SaveHandler.php b/app/code/Magento/SalesRule/Model/ResourceModel/SaveHandler.php index d4ef15f1801bc..c46957ce9177d 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/SaveHandler.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/SaveHandler.php @@ -5,6 +5,7 @@ */ namespace Magento\SalesRule\Model\ResourceModel; +use Exception; use Magento\Framework\EntityManager\MetadataPool; use Magento\Framework\EntityManager\Operation\AttributeInterface; @@ -13,26 +14,14 @@ */ class SaveHandler implements AttributeInterface { - /** - * @var Rule - */ - protected $ruleResource; - - /** - * @var MetadataPool - */ - protected $metadataPool; - /** * @param Rule $ruleResource * @param MetadataPool $metadataPool */ public function __construct( - Rule $ruleResource, - MetadataPool $metadataPool + protected readonly Rule $ruleResource, + protected readonly MetadataPool $metadataPool ) { - $this->ruleResource = $ruleResource; - $this->metadataPool = $metadataPool; } /** @@ -42,7 +31,7 @@ public function __construct( * @param array $entityData * @param array $arguments * @return array - * @throws \Exception + * @throws Exception * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function execute($entityType, $entityData, $arguments = []) diff --git a/app/code/Magento/SalesRule/Model/Rss/Discounts.php b/app/code/Magento/SalesRule/Model/Rss/Discounts.php index aa478a2635ed9..7f556b6a9d984 100644 --- a/app/code/Magento/SalesRule/Model/Rss/Discounts.php +++ b/app/code/Magento/SalesRule/Model/Rss/Discounts.php @@ -5,6 +5,11 @@ */ namespace Magento\SalesRule\Model\Rss; +use DateTime; +use Magento\Framework\Stdlib\DateTime as FrameworkDateTime; +use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection; +use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory as RuleCollectionFactory; + /** * Class Discounts * @package Magento\SalesRule\Model\Rss @@ -12,40 +17,28 @@ class Discounts { /** - * @var \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory - */ - protected $collectionFactory; - - /** - * @var \Magento\Framework\Stdlib\DateTime - */ - protected $dateTime; - - /** - * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $collectionFactory + * @param FrameworkDateTime $dateTime + * @param RuleCollectionFactory $collectionFactory */ public function __construct( - \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $collectionFactory + protected readonly FrameworkDateTime $dateTime, + protected readonly RuleCollectionFactory $collectionFactory ) { - $this->dateTime = $dateTime; - $this->collectionFactory = $collectionFactory; } /** * @param int $websiteId * @param int $customerGroupId - * @return \Magento\SalesRule\Model\ResourceModel\Rule\Collection + * @return RuleCollection */ public function getDiscountCollection($websiteId, $customerGroupId) { - /** @var $collection \Magento\SalesRule\Model\ResourceModel\Rule\Collection */ + /** @var RuleCollection $collection */ $collection = $this->collectionFactory->create(); $collection->addWebsiteGroupDateFilter( $websiteId, $customerGroupId, - (new \DateTime())->format(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT) + (new DateTime())->format(FrameworkDateTime::DATETIME_PHP_FORMAT) ) ->addFieldToFilter('is_rss', 1) ->setOrder('from_date', 'desc'); diff --git a/app/code/Magento/SalesRule/Model/Rule.php b/app/code/Magento/SalesRule/Model/Rule.php index 386642c22ab18..e12de23d1001a 100644 --- a/app/code/Magento/SalesRule/Model/Rule.php +++ b/app/code/Magento/SalesRule/Model/Rule.php @@ -5,67 +5,89 @@ */ namespace Magento\SalesRule\Model; +use Exception; use Magento\Framework\Api\AttributeValueFactory; use Magento\Framework\Api\ExtensionAttributesFactory; +use Magento\Framework\Data\Collection\AbstractDb; +use Magento\Framework\Data\FormFactory; +use Magento\Framework\DataObject; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Model\Context; +use Magento\Framework\Model\ResourceModel\AbstractResource; +use Magento\Framework\Registry; +use Magento\Framework\Serialize\Serializer\Json; +use Magento\Framework\Stdlib\DateTime\TimezoneInterface; use Magento\Quote\Model\Quote\Address; +use Magento\Rule\Model\AbstractModel; +use Magento\SalesRule\Api\Data\CouponInterface; +use Magento\SalesRule\Model\Coupon\CodegeneratorFactory; +use Magento\SalesRule\Model\Coupon\CodegeneratorInterface as CouponCodegeneratorInterface; +use Magento\SalesRule\Model\ResourceModel\Coupon\Collection as CouponCollection; +use Magento\SalesRule\Model\ResourceModel\Rule as ResourceRule; +use Magento\SalesRule\Model\Rule\Condition\Combine as CondCombine; +use Magento\SalesRule\Model\Rule\Condition\Product\Combine as CondProductCombine; +use Magento\Store\Model\Store; +use Magento\Store\Model\StoreManagerInterface; +use Magento\SalesRule\Model\Rule\Condition\Product\CombineFactory as CondProductCombineFactory; +use Magento\SalesRule\Model\Rule\Condition\CombineFactory as CondCombineFactory; /** * Shopping Cart Rule data model * * @api * @method string getName() - * @method \Magento\SalesRule\Model\Rule setName(string $value) + * @method Rule setName(string $value) * @method string getDescription() - * @method \Magento\SalesRule\Model\Rule setDescription(string $value) - * @method \Magento\SalesRule\Model\Rule setFromDate(string $value) - * @method \Magento\SalesRule\Model\Rule setToDate(string $value) + * @method Rule setDescription(string $value) + * @method Rule setFromDate(string $value) + * @method Rule setToDate(string $value) * @method int getUsesPerCustomer() - * @method \Magento\SalesRule\Model\Rule setUsesPerCustomer(int $value) + * @method Rule setUsesPerCustomer(int $value) * @method int getUsesPerCoupon() - * @method \Magento\SalesRule\Model\Rule setUsesPerCoupon(int $value) - * @method \Magento\SalesRule\Model\Rule setCustomerGroupIds(string $value) + * @method Rule setUsesPerCoupon(int $value) + * @method Rule setCustomerGroupIds(string $value) * @method int getIsActive() - * @method \Magento\SalesRule\Model\Rule setIsActive(int $value) + * @method Rule setIsActive(int $value) * @method string getConditionsSerialized() - * @method \Magento\SalesRule\Model\Rule setConditionsSerialized(string $value) + * @method Rule setConditionsSerialized(string $value) * @method string getActionsSerialized() - * @method \Magento\SalesRule\Model\Rule setActionsSerialized(string $value) + * @method Rule setActionsSerialized(string $value) * @method int getStopRulesProcessing() - * @method \Magento\SalesRule\Model\Rule setStopRulesProcessing(int $value) + * @method Rule setStopRulesProcessing(int $value) * @method int getIsAdvanced() - * @method \Magento\SalesRule\Model\Rule setIsAdvanced(int $value) + * @method Rule setIsAdvanced(int $value) * @method string getProductIds() - * @method \Magento\SalesRule\Model\Rule setProductIds(string $value) + * @method Rule setProductIds(string $value) * @method int getSortOrder() - * @method \Magento\SalesRule\Model\Rule setSortOrder(int $value) + * @method Rule setSortOrder(int $value) * @method string getSimpleAction() - * @method \Magento\SalesRule\Model\Rule setSimpleAction(string $value) + * @method Rule setSimpleAction(string $value) * @method float getDiscountAmount() - * @method \Magento\SalesRule\Model\Rule setDiscountAmount(float $value) + * @method Rule setDiscountAmount(float $value) * @method float getDiscountQty() - * @method \Magento\SalesRule\Model\Rule setDiscountQty(float $value) + * @method Rule setDiscountQty(float $value) * @method int getDiscountStep() - * @method \Magento\SalesRule\Model\Rule setDiscountStep(int $value) + * @method Rule setDiscountStep(int $value) * @method int getApplyToShipping() - * @method \Magento\SalesRule\Model\Rule setApplyToShipping(int $value) + * @method Rule setApplyToShipping(int $value) * @method int getTimesUsed() - * @method \Magento\SalesRule\Model\Rule setTimesUsed(int $value) + * @method Rule setTimesUsed(int $value) * @method int getIsRss() - * @method \Magento\SalesRule\Model\Rule setIsRss(int $value) + * @method Rule setIsRss(int $value) * @method string getWebsiteIds() - * @method \Magento\SalesRule\Model\Rule setWebsiteIds(string $value) + * @method Rule setWebsiteIds(string $value) * @method int getCouponType() - * @method \Magento\SalesRule\Model\Rule setCouponType(int $value) + * @method Rule setCouponType(int $value) * @method int getUseAutoGeneration() - * @method \Magento\SalesRule\Model\Rule setUseAutoGeneration(int $value) + * @method Rule setUseAutoGeneration(int $value) * @method string getCouponCode() - * @method \Magento\SalesRule\Model\Rule setCouponCode(string $value) + * @method Rule setCouponCode(string $value) * @method int getRuleId() - * @method \Magento\SalesRule\Model\Rule setRuleId(int $ruleId) + * @method Rule setRuleId(int $ruleId) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @since 100.0.2 */ -class Rule extends \Magento\Rule\Model\AbstractModel +class Rule extends AbstractModel { /** * Coupon types @@ -94,7 +116,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel /** * Store coupon code generator instance * - * @var \Magento\SalesRule\Model\Coupon\CodegeneratorInterface + * @var CouponCodegeneratorInterface */ protected $_couponCodeGenerator; @@ -117,14 +139,14 @@ class Rule extends \Magento\Rule\Model\AbstractModel /** * Rule's primary coupon * - * @var \Magento\SalesRule\Model\Coupon + * @var Coupon */ protected $_primaryCoupon; /** * Rule's subordinate coupons * - * @var \Magento\SalesRule\Model\Coupon[] + * @var Coupon[] */ protected $_coupons; @@ -143,74 +165,74 @@ class Rule extends \Magento\Rule\Model\AbstractModel protected $_validatedAddresses = []; /** - * @var \Magento\SalesRule\Model\CouponFactory + * @var CouponFactory */ protected $_couponFactory; /** - * @var \Magento\SalesRule\Model\Coupon\CodegeneratorFactory + * @var CodegeneratorFactory */ protected $_codegenFactory; /** - * @var \Magento\SalesRule\Model\Rule\Condition\CombineFactory + * @var CondCombineFactory */ protected $_condCombineFactory; /** - * @var \Magento\SalesRule\Model\Rule\Condition\Product\CombineFactory + * @var CondProductCombineFactory */ protected $_condProdCombineF; /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon\Collection + * @var CouponCollection */ protected $_couponCollection; /** - * @var \Magento\Store\Model\StoreManagerInterface + * @var StoreManagerInterface */ protected $_storeManager; /** * Rule constructor * - * @param \Magento\Framework\Model\Context $context - * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Data\FormFactory $formFactory - * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate + * @param Context $context + * @param Registry $registry + * @param FormFactory $formFactory + * @param TimezoneInterface $localeDate * @param CouponFactory $couponFactory * @param Coupon\CodegeneratorFactory $codegenFactory * @param Rule\Condition\CombineFactory $condCombineFactory * @param Rule\Condition\Product\CombineFactory $condProdCombineF * @param ResourceModel\Coupon\Collection $couponCollection - * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource - * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection + * @param StoreManagerInterface $storeManager + * @param AbstractResource|null $resource + * @param AbstractDb|null $resourceCollection * @param array $data * @param ExtensionAttributesFactory|null $extensionFactory * @param AttributeValueFactory|null $customAttributeFactory - * @param \Magento\Framework\Serialize\Serializer\Json $serializer + * @param Json $serializer * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\Model\Context $context, - \Magento\Framework\Registry $registry, - \Magento\Framework\Data\FormFactory $formFactory, - \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, - \Magento\SalesRule\Model\CouponFactory $couponFactory, - \Magento\SalesRule\Model\Coupon\CodegeneratorFactory $codegenFactory, - \Magento\SalesRule\Model\Rule\Condition\CombineFactory $condCombineFactory, - \Magento\SalesRule\Model\Rule\Condition\Product\CombineFactory $condProdCombineF, - \Magento\SalesRule\Model\ResourceModel\Coupon\Collection $couponCollection, - \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, - \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, + Context $context, + Registry $registry, + FormFactory $formFactory, + TimezoneInterface $localeDate, + CouponFactory $couponFactory, + CodegeneratorFactory $codegenFactory, + CondCombineFactory $condCombineFactory, + CondProductCombineFactory $condProdCombineF, + CouponCollection $couponCollection, + StoreManagerInterface $storeManager, + AbstractResource $resource = null, + AbstractDb $resourceCollection = null, array $data = [], ExtensionAttributesFactory $extensionFactory = null, AttributeValueFactory $customAttributeFactory = null, - \Magento\Framework\Serialize\Serializer\Json $serializer = null + Json $serializer = null ) { $this->_couponFactory = $couponFactory; $this->_codegenFactory = $codegenFactory; @@ -240,7 +262,7 @@ public function __construct( protected function _construct() { parent::_construct(); - $this->_init(\Magento\SalesRule\Model\ResourceModel\Rule::class); + $this->_init(ResourceRule::class); $this->setIdFieldName('rule_id'); } @@ -325,7 +347,7 @@ public function loadPost(array $data) /** * Get rule condition combine model instance * - * @return \Magento\SalesRule\Model\Rule\Condition\Combine + * @return CondCombine */ public function getConditionsInstance() { @@ -335,7 +357,7 @@ public function getConditionsInstance() /** * Get rule condition product combine model instance * - * @return \Magento\SalesRule\Model\Rule\Condition\Product\Combine + * @return CondProductCombine */ public function getActionsInstance() { @@ -345,7 +367,7 @@ public function getActionsInstance() /** * Returns code generator instance for auto generated coupons * - * @return \Magento\SalesRule\Model\Coupon\CodegeneratorInterface + * @return CouponCodegeneratorInterface */ public function getCouponCodeGenerator() { @@ -358,10 +380,10 @@ public function getCouponCodeGenerator() /** * Set code generator instance for auto generated coupons * - * @param \Magento\SalesRule\Model\Coupon\CodegeneratorInterface $codeGenerator + * @param CouponCodegeneratorInterface $codeGenerator * @return void */ - public function setCouponCodeGenerator(\Magento\SalesRule\Model\Coupon\CodegeneratorInterface $codeGenerator) + public function setCouponCodeGenerator(CouponCodegeneratorInterface $codeGenerator) { $this->_couponCodeGenerator = $codeGenerator; } @@ -369,7 +391,7 @@ public function setCouponCodeGenerator(\Magento\SalesRule\Model\Coupon\Codegener /** * Retrieve rule's primary coupon * - * @return \Magento\SalesRule\Model\Coupon + * @return Coupon */ public function getPrimaryCoupon() { @@ -398,7 +420,7 @@ public function getCustomerGroupIds() /** * Get Rule label by specified store * - * @param \Magento\Store\Model\Store|int|bool|null $store + * @param Store|int|bool|null $store * @return string|bool */ public function getStoreLabel($store = null) @@ -434,7 +456,7 @@ public function getStoreLabels() /** * Retrieve subordinate coupons * - * @return \Magento\SalesRule\Model\Coupon[] + * @return Coupon[] */ public function getCoupons() { @@ -454,16 +476,16 @@ public function getCouponTypes() { if ($this->_couponTypes === null) { $this->_couponTypes = [ - \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON => __('No Coupon'), - \Magento\SalesRule\Model\Rule::COUPON_TYPE_SPECIFIC => __('Specific Coupon'), + Rule::COUPON_TYPE_NO_COUPON => __('No Coupon'), + Rule::COUPON_TYPE_SPECIFIC => __('Specific Coupon'), ]; - $transport = new \Magento\Framework\DataObject( + $transport = new DataObject( ['coupon_types' => $this->_couponTypes, 'is_coupon_type_auto_visible' => false] ); $this->_eventManager->dispatch('salesrule_rule_get_coupon_types', ['transport' => $transport]); $this->_couponTypes = $transport->getCouponTypes(); if ($transport->getIsCouponTypeAutoVisible()) { - $this->_couponTypes[\Magento\SalesRule\Model\Rule::COUPON_TYPE_AUTO] = __('Auto'); + $this->_couponTypes[Rule::COUPON_TYPE_AUTO] = __('Auto'); } } return $this->_couponTypes; @@ -474,8 +496,8 @@ public function getCouponTypes() * * @param bool $saveNewlyCreated Whether or not to save newly created coupon * @param int $saveAttemptCount Number of attempts to save newly created coupon - * @return \Magento\SalesRule\Model\Coupon|null - * @throws \Exception|\Magento\Framework\Exception\LocalizedException + * @return Coupon|null + * @throws Exception|LocalizedException * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ @@ -487,7 +509,7 @@ public function acquireCoupon($saveNewlyCreated = true, $saveAttemptCount = 10) if ($this->getCouponType() == self::COUPON_TYPE_SPECIFIC) { return $this->getPrimaryCoupon(); } - /** @var \Magento\SalesRule\Model\Coupon $coupon */ + /** @var Coupon $coupon */ $coupon = $this->_couponFactory->create(); $coupon->setRule( $this @@ -498,7 +520,7 @@ public function acquireCoupon($saveNewlyCreated = true, $saveAttemptCount = 10) )->setUsagePerCustomer( $this->getUsesPerCustomer() ? $this->getUsesPerCustomer() : null )->setType( - \Magento\SalesRule\Api\Data\CouponInterface::TYPE_GENERATED + CouponInterface::TYPE_GENERATED ); $couponCode = self::getCouponCodeGenerator()->generateCode(); @@ -512,8 +534,8 @@ public function acquireCoupon($saveNewlyCreated = true, $saveAttemptCount = 10) for ($attemptNum = 0; $attemptNum < $saveAttemptCount; $attemptNum++) { try { $coupon->save(); - } catch (\Exception $e) { - if ($e instanceof \Magento\Framework\Exception\LocalizedException || $coupon->getId()) { + } catch (Exception $e) { + if ($e instanceof LocalizedException || $coupon->getId()) { throw $e; } $coupon->setCode( @@ -530,7 +552,7 @@ public function acquireCoupon($saveNewlyCreated = true, $saveAttemptCount = 10) } } if (!$ok) { - throw new \Magento\Framework\Exception\LocalizedException(__('Can\'t acquire coupon.')); + throw new LocalizedException(__('Can\'t acquire coupon.')); } return $coupon; diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Collection.php b/app/code/Magento/SalesRule/Model/Rule/Action/Collection.php index 2d3db512f9656..a3a99ddc6f3d2 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Collection.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Collection.php @@ -5,22 +5,29 @@ */ namespace Magento\SalesRule\Model\Rule\Action; -class Collection extends \Magento\Rule\Model\Action\Collection +use Magento\Framework\View\Asset\Repository; +use Magento\Framework\View\LayoutInterface; +use Magento\Rule\Model\Action\Collection as ActionCollection; +use Magento\Rule\Model\ActionFactory; +use Magento\SalesRule\Model\Rule\Action\Collection as RuleActionCollection; +use Magento\SalesRule\Model\Rule\Action\Product as RuleActionProduct; + +class Collection extends ActionCollection { /** - * @param \Magento\Framework\View\Asset\Repository $assetRepo - * @param \Magento\Framework\View\LayoutInterface $layout - * @param \Magento\Rule\Model\ActionFactory $actionFactory + * @param Repository $assetRepo + * @param LayoutInterface $layout + * @param ActionFactory $actionFactory * @param array $data */ public function __construct( - \Magento\Framework\View\Asset\Repository $assetRepo, - \Magento\Framework\View\LayoutInterface $layout, - \Magento\Rule\Model\ActionFactory $actionFactory, + Repository $assetRepo, + LayoutInterface $layout, + ActionFactory $actionFactory, array $data = [] ) { parent::__construct($assetRepo, $layout, $actionFactory, $data); - $this->setType(\Magento\SalesRule\Model\Rule\Action\Collection::class); + $this->setType(RuleActionCollection::class); } /** @@ -31,7 +38,7 @@ public function getNewChildSelectOptions() $actions = parent::getNewChildSelectOptions(); $actions = array_merge_recursive( $actions, - [['value' => \Magento\SalesRule\Model\Rule\Action\Product::class, 'label' => __('Update the Product')]] + [['value' => RuleActionProduct::class, 'label' => __('Update the Product')]] ); return $actions; } diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/AbstractDiscount.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/AbstractDiscount.php index bb0a6c319dacc..c7d504e206313 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/AbstractDiscount.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/AbstractDiscount.php @@ -5,49 +5,44 @@ */ namespace Magento\SalesRule\Model\Rule\Action\Discount; +use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Quote\Model\Quote\Item\AbstractItem; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule\Action\Discount\Data as DiscountData; +use Magento\SalesRule\Model\Rule\Action\Discount\DataFactory as DiscountDataFactory; +use Magento\SalesRule\Model\Validator; + abstract class AbstractDiscount implements DiscountInterface { /** - * @var \Magento\SalesRule\Model\Rule\Action\Discount\DataFactory + * @var DiscountDataFactory */ protected $discountFactory; /** - * @var \Magento\SalesRule\Model\Validator - */ - protected $validator; - - /** - * @var \Magento\Framework\Pricing\PriceCurrencyInterface - */ - protected $priceCurrency; - - /** - * @param \Magento\SalesRule\Model\Validator $validator + * @param Validator $validator * @param DataFactory $discountDataFactory - * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency + * @param PriceCurrencyInterface $priceCurrency */ public function __construct( - \Magento\SalesRule\Model\Validator $validator, - \Magento\SalesRule\Model\Rule\Action\Discount\DataFactory $discountDataFactory, - \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency + protected readonly Validator $validator, + DiscountDataFactory $discountDataFactory, + protected readonly PriceCurrencyInterface $priceCurrency ) { - $this->validator = $validator; $this->discountFactory = $discountDataFactory; - $this->priceCurrency = $priceCurrency; } /** - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Rule $rule + * @param AbstractItem $item * @param float $qty - * @return \Magento\SalesRule\Model\Rule\Action\Discount\Data + * @return DiscountData */ abstract public function calculate($rule, $item, $qty); /** * @param float $qty - * @param \Magento\SalesRule\Model\Rule $rule + * @param Rule $rule * @return float */ public function fixQuantity($qty, $rule) diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByFixed.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByFixed.php index 2ad935247a8ab..d210c07a181e9 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByFixed.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByFixed.php @@ -5,19 +5,23 @@ */ namespace Magento\SalesRule\Model\Rule\Action\Discount; +use Magento\Quote\Model\Quote\Item\AbstractItem; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule\Action\Discount\Data as DiscountData; + class ByFixed extends AbstractDiscount { /** * Calculate fixed amount discount * - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Rule $rule + * @param AbstractItem $item * @param float $qty - * @return \Magento\SalesRule\Model\Rule\Action\Discount\Data + * @return DiscountData */ public function calculate($rule, $item, $qty) { - /** @var \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData */ + /** @var DiscountData $discountData */ $discountData = $this->discountFactory->create(); $baseDiscountAmount = (float) $rule->getDiscountAmount(); @@ -40,7 +44,7 @@ public function calculate($rule, $item, $qty) * Fix quantity depending on discount step * * @param float $qty - * @param \Magento\SalesRule\Model\Rule $rule + * @param Rule $rule * @return float */ public function fixQuantity($qty, $rule) diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php index 836e1fc8956dc..3557ea67a6fe5 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php @@ -5,13 +5,17 @@ */ namespace Magento\SalesRule\Model\Rule\Action\Discount; +use Magento\Quote\Model\Quote\Item\AbstractItem; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule\Action\Discount\Data as DiscountData; + class ByPercent extends AbstractDiscount { /** * Calculate discount by percent * - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Rule $rule + * @param AbstractItem $item * @param float $qty * @return Data */ @@ -27,7 +31,7 @@ public function calculate($rule, $item, $qty) * Fix quantity depending on discount step * * @param float $qty - * @param \Magento\SalesRule\Model\Rule $rule + * @param Rule $rule * @return float */ public function fixQuantity($qty, $rule) @@ -43,15 +47,15 @@ public function fixQuantity($qty, $rule) /** * Calculate discount by rule percent * - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Rule $rule + * @param AbstractItem $item * @param float $qty * @param float $rulePercent * @return Data */ protected function _calculate($rule, $item, $qty, $rulePercent) { - /** @var \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData */ + /** @var DiscountData $discountData */ $discountData = $this->discountFactory->create(); $itemPrice = $this->validator->getItemPrice($item); diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CalculatorFactory.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CalculatorFactory.php index 7551ccb5dda14..9fb6421999318 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CalculatorFactory.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CalculatorFactory.php @@ -5,12 +5,16 @@ */ namespace Magento\SalesRule\Model\Rule\Action\Discount; +use InvalidArgumentException; +use Magento\Framework\ObjectManagerInterface; +use Magento\SalesRule\Model\Rule; + class CalculatorFactory { /** * Object manager * - * @var \Magento\Framework\ObjectManagerInterface + * @var ObjectManagerInterface */ private $_objectManager; @@ -18,37 +22,39 @@ class CalculatorFactory * @var array */ protected $classByType = [ - \Magento\SalesRule\Model\Rule::TO_PERCENT_ACTION => - \Magento\SalesRule\Model\Rule\Action\Discount\ToPercent::class, - \Magento\SalesRule\Model\Rule::BY_PERCENT_ACTION => - \Magento\SalesRule\Model\Rule\Action\Discount\ByPercent::class, - \Magento\SalesRule\Model\Rule::TO_FIXED_ACTION => \Magento\SalesRule\Model\Rule\Action\Discount\ToFixed::class, - \Magento\SalesRule\Model\Rule::BY_FIXED_ACTION => \Magento\SalesRule\Model\Rule\Action\Discount\ByFixed::class, - \Magento\SalesRule\Model\Rule::CART_FIXED_ACTION => - \Magento\SalesRule\Model\Rule\Action\Discount\CartFixed::class, - \Magento\SalesRule\Model\Rule::BUY_X_GET_Y_ACTION => - \Magento\SalesRule\Model\Rule\Action\Discount\BuyXGetY::class, + Rule::TO_PERCENT_ACTION => + ToPercent::class, + Rule::BY_PERCENT_ACTION => + ByPercent::class, + Rule::TO_FIXED_ACTION => ToFixed::class, + Rule::BY_FIXED_ACTION => ByFixed::class, + Rule::CART_FIXED_ACTION => + CartFixed::class, + Rule::BUY_X_GET_Y_ACTION => + BuyXGetY::class, ]; /** - * @param \Magento\Framework\ObjectManagerInterface $objectManager + * @param ObjectManagerInterface $objectManager * @param array $discountRules */ - public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager, array $discountRules = []) - { + public function __construct( + ObjectManagerInterface $objectManager, + array $discountRules = [] + ) { $this->classByType = array_merge($this->classByType, $discountRules); $this->_objectManager = $objectManager; } /** * @param string $type - * @return \Magento\SalesRule\Model\Rule\Action\Discount\DiscountInterface - * @throws \InvalidArgumentException + * @return DiscountInterface + * @throws InvalidArgumentException */ public function create($type) { if (!isset($this->classByType[$type])) { - throw new \InvalidArgumentException($type . ' is unknown type'); + throw new InvalidArgumentException($type . ' is unknown type'); } return $this->_objectManager->create($this->classByType[$type]); diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CartFixed.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CartFixed.php index 2f9dbb9faea25..a59c08b487bb5 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CartFixed.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/CartFixed.php @@ -26,11 +26,6 @@ class CartFixed extends AbstractDiscount */ protected $_cartFixedRuleUsedForAddress = []; - /** - * @var DeltaPriceRound - */ - private $deltaPriceRound; - /** * @var CartFixedDiscount */ @@ -52,10 +47,9 @@ public function __construct( Validator $validator, DataFactory $discountDataFactory, PriceCurrencyInterface $priceCurrency, - DeltaPriceRound $deltaPriceRound, + private readonly DeltaPriceRound $deltaPriceRound, ?CartFixedDiscount $cartFixedDiscount = null ) { - $this->deltaPriceRound = $deltaPriceRound; $this->cartFixedDiscountHelper = $cartFixedDiscount ?: ObjectManager::getInstance()->get(CartFixedDiscount::class); parent::__construct($validator, $discountDataFactory, $priceCurrency); diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToFixed.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToFixed.php index 4fc6a469cc708..5883fd20ddadd 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToFixed.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToFixed.php @@ -5,17 +5,21 @@ */ namespace Magento\SalesRule\Model\Rule\Action\Discount; +use Magento\Quote\Model\Quote\Item\AbstractItem; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule\Action\Discount\Data as DiscountData; + class ToFixed extends AbstractDiscount { /** - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Rule $rule + * @param AbstractItem $item * @param float $qty - * @return \Magento\SalesRule\Model\Rule\Action\Discount\Data + * @return DiscountData */ public function calculate($rule, $item, $qty) { - /** @var \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData */ + /** @var DiscountData $discountData */ $discountData = $this->discountFactory->create(); $store = $item->getQuote()->getStore(); diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToPercent.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToPercent.php index ed4e2d23347fc..3e132fc56b079 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToPercent.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ToPercent.php @@ -5,11 +5,14 @@ */ namespace Magento\SalesRule\Model\Rule\Action\Discount; +use Magento\Quote\Model\Quote\Item\AbstractItem; +use Magento\SalesRule\Model\Rule as ModelRule; + class ToPercent extends ByPercent { /** - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param ModelRule $rule + * @param AbstractItem $item * @param float $qty * @return Data */ diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Product.php b/app/code/Magento/SalesRule/Model/Rule/Action/Product.php index 6920381a0c8ce..ae7387ff412e1 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Product.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Product.php @@ -5,7 +5,9 @@ */ namespace Magento\SalesRule\Model\Rule\Action; -class Product extends \Magento\Rule\Model\Action\AbstractAction +use Magento\Rule\Model\Action\AbstractAction; + +class Product extends AbstractAction { /** * Load attribute options diff --git a/app/code/Magento/SalesRule/Model/Rule/Condition/Address.php b/app/code/Magento/SalesRule/Model/Rule/Condition/Address.php index 62c1cc086048b..34be8408b59d7 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Condition/Address.php +++ b/app/code/Magento/SalesRule/Model/Rule/Condition/Address.php @@ -5,45 +5,54 @@ */ namespace Magento\SalesRule\Model\Rule\Condition; +use Magento\Directory\Model\Config\Source\Allregion as DirectoryAllregion; +use Magento\Directory\Model\Config\Source\Country as DirectoryCountry; +use Magento\Framework\Model\AbstractModel; +use Magento\Payment\Model\Config\Source\Allmethods as PaymentAllmethods; +use Magento\Quote\Model\Quote\Address as QuoteAddress; +use Magento\Rule\Model\Condition\AbstractCondition; +use Magento\Rule\Model\Condition\Context as ConditionContext; +use Magento\Shipping\Model\Config\Source\Allmethods as ShippingAllmethods; + /** * Address rule condition data model. */ -class Address extends \Magento\Rule\Model\Condition\AbstractCondition +class Address extends AbstractCondition { /** - * @var \Magento\Directory\Model\Config\Source\Country + * @var DirectoryCountry */ protected $_directoryCountry; /** - * @var \Magento\Directory\Model\Config\Source\Allregion + * @var DirectoryAllregion */ protected $_directoryAllregion; /** - * @var \Magento\Shipping\Model\Config\Source\Allmethods + * @var ShippingAllmethods */ protected $_shippingAllmethods; /** - * @var \Magento\Payment\Model\Config\Source\Allmethods + * @var PaymentAllmethods */ protected $_paymentAllmethods; /** - * @param \Magento\Rule\Model\Condition\Context $context - * @param \Magento\Directory\Model\Config\Source\Country $directoryCountry - * @param \Magento\Directory\Model\Config\Source\Allregion $directoryAllregion - * @param \Magento\Shipping\Model\Config\Source\Allmethods $shippingAllmethods - * @param \Magento\Payment\Model\Config\Source\Allmethods $paymentAllmethods + * @param ConditionContext $context + * @param DirectoryCountry $directoryCountry + * @param DirectoryAllregion $directoryAllregion + * @param ShippingAllmethods $shippingAllmethods + * @param PaymentAllmethods $paymentAllmethods * @param array $data */ public function __construct( - \Magento\Rule\Model\Condition\Context $context, - \Magento\Directory\Model\Config\Source\Country $directoryCountry, - \Magento\Directory\Model\Config\Source\Allregion $directoryAllregion, - \Magento\Shipping\Model\Config\Source\Allmethods $shippingAllmethods, - \Magento\Payment\Model\Config\Source\Allmethods $paymentAllmethods, + ConditionContext $context, + DirectoryCountry $directoryCountry, + DirectoryAllregion $directoryAllregion, + ShippingAllmethods $shippingAllmethods, + PaymentAllmethods $paymentAllmethods, array $data = [] ) { parent::__construct($context, $data); @@ -167,13 +176,13 @@ public function getValueSelectOptions() /** * Validate Address Rule Condition * - * @param \Magento\Framework\Model\AbstractModel $model + * @param AbstractModel $model * @return bool */ - public function validate(\Magento\Framework\Model\AbstractModel $model) + public function validate(AbstractModel $model) { $address = $model; - if (!$address instanceof \Magento\Quote\Model\Quote\Address) { + if (!$address instanceof QuoteAddress) { if ($model->getQuote()->isVirtual()) { $address = $model->getQuote()->getBillingAddress(); } else { diff --git a/app/code/Magento/SalesRule/Model/Rule/Condition/Combine.php b/app/code/Magento/SalesRule/Model/Rule/Condition/Combine.php index e3aa803f31d91..811a528c81c1c 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Condition/Combine.php +++ b/app/code/Magento/SalesRule/Model/Rule/Condition/Combine.php @@ -5,40 +5,49 @@ */ namespace Magento\SalesRule\Model\Rule\Condition; +use Magento\Framework\DataObject; +use Magento\Framework\Event\ManagerInterface as EventManagerInterface; +use Magento\Rule\Model\Condition\Combine as ConditionCombine; +use Magento\Rule\Model\Condition\Context as ConditionContext; +use Magento\SalesRule\Model\Rule\Condition\Address as RuleConditionAddress; +use Magento\SalesRule\Model\Rule\Condition\Combine as RuleConditionCombine; +use Magento\SalesRule\Model\Rule\Condition\Product\Found as RuleCondProductFound; +use Magento\SalesRule\Model\Rule\Condition\Product\Subselect as RuleCondProductSubselect; + /** * @api * @since 100.0.2 */ -class Combine extends \Magento\Rule\Model\Condition\Combine +class Combine extends ConditionCombine { /** * Core event manager proxy * - * @var \Magento\Framework\Event\ManagerInterface + * @var EventManagerInterface */ protected $_eventManager = null; /** - * @var \Magento\SalesRule\Model\Rule\Condition\Address + * @var RuleConditionAddress */ protected $_conditionAddress; /** - * @param \Magento\Rule\Model\Condition\Context $context - * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\SalesRule\Model\Rule\Condition\Address $conditionAddress + * @param ConditionContext $context + * @param EventManagerInterface $eventManager + * @param RuleConditionAddress $conditionAddress * @param array $data */ public function __construct( - \Magento\Rule\Model\Condition\Context $context, - \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\SalesRule\Model\Rule\Condition\Address $conditionAddress, + ConditionContext $context, + EventManagerInterface $eventManager, + RuleConditionAddress $conditionAddress, array $data = [] ) { $this->_eventManager = $eventManager; $this->_conditionAddress = $conditionAddress; parent::__construct($context, $data); - $this->setType(\Magento\SalesRule\Model\Rule\Condition\Combine::class); + $this->setType(RuleConditionCombine::class); } /** @@ -62,22 +71,22 @@ public function getNewChildSelectOptions() $conditions, [ [ - 'value' => \Magento\SalesRule\Model\Rule\Condition\Product\Found::class, + 'value' => RuleCondProductFound::class, 'label' => __('Product attribute combination'), ], [ - 'value' => \Magento\SalesRule\Model\Rule\Condition\Product\Subselect::class, + 'value' => RuleCondProductSubselect::class, 'label' => __('Products subselection') ], [ - 'value' => \Magento\SalesRule\Model\Rule\Condition\Combine::class, + 'value' => RuleConditionCombine::class, 'label' => __('Conditions combination') ], ['label' => __('Cart Attribute'), 'value' => $attributes] ] ); - $additional = new \Magento\Framework\DataObject(); + $additional = new DataObject(); $this->_eventManager->dispatch('salesrule_rule_condition_combine', ['additional' => $additional]); $additionalConditions = $additional->getConditions(); if ($additionalConditions) { diff --git a/app/code/Magento/SalesRule/Model/Rule/Condition/Product.php b/app/code/Magento/SalesRule/Model/Rule/Condition/Product.php index cc65876fb513f..aa79839d05618 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Condition/Product.php +++ b/app/code/Magento/SalesRule/Model/Rule/Condition/Product.php @@ -5,12 +5,19 @@ */ namespace Magento\SalesRule\Model\Rule\Condition; +use Magento\Catalog\Model\Product as ModelProduct; +use Magento\Catalog\Model\ResourceModel\Eav\Attribute as ResourceEavAttribute; +use Magento\Framework\Data\Form\Element\AbstractElement; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Model\AbstractModel; +use Magento\Rule\Model\Condition\Product\AbstractProduct as ConditionAbstractProduct; + /** * Product rule condition data model * * @author Magento Core Team */ -class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct +class Product extends ConditionAbstractProduct { /** * Add special attributes @@ -66,7 +73,7 @@ public function loadAttributeOptions() $attributes = []; foreach ($productAttributes as $attribute) { - /* @var $attribute \Magento\Catalog\Model\ResourceModel\Eav\Attribute */ + /** @var ResourceEavAttribute $attribute */ if (!$attribute->isAllowedForRuleCondition() || !$attribute->getDataUsingMethod($this->_isUsedForRuleProperty) ) { @@ -100,9 +107,9 @@ public function getAttributeElementHtml() /** * Retrieve form element for scope element * - * @return \Magento\Framework\Data\Form\Element\AbstractElement + * @return AbstractElement */ - private function getAttributeScopeElement(): \Magento\Framework\Data\Form\Element\AbstractElement + private function getAttributeScopeElement(): AbstractElement { return $this->getForm()->addField( $this->getPrefix() . '__' . $this->getId() . '__attribute_scope', @@ -159,17 +166,17 @@ public function asArray(array $arrAttributes = []) /** * Validate Product Rule Condition * - * @param \Magento\Framework\Model\AbstractModel $model + * @param AbstractModel $model * * @return bool - * @throws \Magento\Framework\Exception\NoSuchEntityException + * @throws NoSuchEntityException */ - public function validate(\Magento\Framework\Model\AbstractModel $model) + public function validate(AbstractModel $model) { //@todo reimplement this method when is fixed MAGETWO-5713 - /** @var \Magento\Catalog\Model\Product $product */ + /** @var ModelProduct $product */ $product = $model->getProduct(); - if (!$product instanceof \Magento\Catalog\Model\Product) { + if (!$product instanceof ModelProduct) { $product = $this->productRepository->getById($model->getProductId()); } diff --git a/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Combine.php b/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Combine.php index f96d1ebe1d48f..0016502e9e132 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Combine.php +++ b/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Combine.php @@ -6,32 +6,37 @@ namespace Magento\SalesRule\Model\Rule\Condition\Product; use Magento\Catalog\Model\ResourceModel\Product\Collection; +use Magento\Framework\Model\AbstractModel; +use Magento\Rule\Model\Condition\Combine as ConditionCombine; +use Magento\Rule\Model\Condition\Context as ConditionContext; +use Magento\SalesRule\Model\Rule\Condition\Product as RuleCondProduct; +use Magento\SalesRule\Model\Rule\Condition\Product\Combine as RuleCondProductCombine; /** * Combine conditions for product. * @api * @since 100.0.2 */ -class Combine extends \Magento\Rule\Model\Condition\Combine +class Combine extends ConditionCombine { /** - * @var \Magento\SalesRule\Model\Rule\Condition\Product + * @var RuleCondProduct */ protected $_ruleConditionProd; /** - * @param \Magento\Rule\Model\Condition\Context $context - * @param \Magento\SalesRule\Model\Rule\Condition\Product $ruleConditionProduct + * @param ConditionContext $context + * @param RuleCondProduct $ruleConditionProduct * @param array $data */ public function __construct( - \Magento\Rule\Model\Condition\Context $context, - \Magento\SalesRule\Model\Rule\Condition\Product $ruleConditionProduct, + ConditionContext $context, + RuleCondProduct $ruleConditionProduct, array $data = [] ) { parent::__construct($context, $data); $this->_ruleConditionProd = $ruleConditionProduct; - $this->setType(\Magento\SalesRule\Model\Rule\Condition\Product\Combine::class); + $this->setType(RuleCondProductCombine::class); } /** @@ -47,12 +52,12 @@ public function getNewChildSelectOptions() foreach ($productAttributes as $code => $label) { if (strpos($code, 'quote_item_') === 0 || strpos($code, 'parent::quote_item_') === 0) { $iAttributes[] = [ - 'value' => \Magento\SalesRule\Model\Rule\Condition\Product::class . '|' . $code, + 'value' => RuleCondProduct::class . '|' . $code, 'label' => $label, ]; } else { $pAttributes[] = [ - 'value' => \Magento\SalesRule\Model\Rule\Condition\Product::class . '|' . $code, + 'value' => RuleCondProduct::class . '|' . $code, 'label' => $label, ]; } @@ -63,7 +68,7 @@ public function getNewChildSelectOptions() $conditions, [ [ - 'value' => \Magento\SalesRule\Model\Rule\Condition\Product\Combine::class, + 'value' => RuleCondProductCombine::class, 'label' => __('Conditions Combination'), ], ['label' => __('Cart Item Attribute'), 'value' => $iAttributes], @@ -101,7 +106,7 @@ protected function _isValid($entity) $true = (bool)$this->getValue(); foreach ($this->getConditions() as $cond) { - if ($entity instanceof \Magento\Framework\Model\AbstractModel) { + if ($entity instanceof AbstractModel) { $validated = $this->validateEntity($cond, $entity); } else { $validated = $cond->validateByEntityId($entity); @@ -119,10 +124,10 @@ protected function _isValid($entity) * Validate entity. * * @param object $cond - * @param \Magento\Framework\Model\AbstractModel $entity + * @param AbstractModel $entity * @return bool */ - private function validateEntity($cond, \Magento\Framework\Model\AbstractModel $entity) + private function validateEntity($cond, AbstractModel $entity) { $true = (bool)$this->getValue(); $validated = !$true; @@ -140,10 +145,10 @@ private function validateEntity($cond, \Magento\Framework\Model\AbstractModel $e * Retrieve entities for validation by attribute scope * * @param string $attributeScope - * @param \Magento\Framework\Model\AbstractModel $entity - * @return \Magento\Framework\Model\AbstractModel[] + * @param AbstractModel $entity + * @return AbstractModel[] */ - private function retrieveValidateEntities($attributeScope, \Magento\Framework\Model\AbstractModel $entity) + private function retrieveValidateEntities($attributeScope, AbstractModel $entity) { if ($attributeScope === 'parent') { $parentItem = $entity->getParentItem(); diff --git a/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Found.php b/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Found.php index a807bca77cc60..1d3a53c2af09d 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Found.php +++ b/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Found.php @@ -5,20 +5,26 @@ */ namespace Magento\SalesRule\Model\Rule\Condition\Product; -class Found extends \Magento\SalesRule\Model\Rule\Condition\Product\Combine +use Magento\Framework\Model\AbstractModel; +use Magento\Rule\Model\Condition\Context as ConditionContext; +use Magento\SalesRule\Model\Rule\Condition\Product as RuleCondProduct; +use Magento\SalesRule\Model\Rule\Condition\Product\Combine as RuleCondProductCombine; +use Magento\SalesRule\Model\Rule\Condition\Product\Found as RuleCondProductFound; + +class Found extends RuleCondProductCombine { /** - * @param \Magento\Rule\Model\Condition\Context $context - * @param \Magento\SalesRule\Model\Rule\Condition\Product $ruleConditionProduct + * @param ConditionContext $context + * @param RuleCondProduct $ruleConditionProduct * @param array $data */ public function __construct( - \Magento\Rule\Model\Condition\Context $context, - \Magento\SalesRule\Model\Rule\Condition\Product $ruleConditionProduct, + ConditionContext $context, + RuleCondProduct $ruleConditionProduct, array $data = [] ) { parent::__construct($context, $ruleConditionProduct, $data); - $this->setType(\Magento\SalesRule\Model\Rule\Condition\Product\Found::class); + $this->setType(RuleCondProductFound::class); } /** @@ -53,11 +59,11 @@ public function asHtml() /** * Validate * - * @param \Magento\Framework\Model\AbstractModel $model + * @param AbstractModel $model * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ - public function validate(\Magento\Framework\Model\AbstractModel $model) + public function validate(AbstractModel $model) { $isValid = false; diff --git a/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Subselect.php b/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Subselect.php index 1c6d534bf0700..bba1df23d51e1 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Subselect.php +++ b/app/code/Magento/SalesRule/Model/Rule/Condition/Product/Subselect.php @@ -5,25 +5,30 @@ */ namespace Magento\SalesRule\Model\Rule\Condition\Product; +use Magento\Catalog\Model\Product\Type as ProductType; +use Magento\Framework\Model\AbstractModel; use Magento\Quote\Api\Data\TotalsItemInterface; +use Magento\Rule\Model\Condition\Context as ConditionContext; +use Magento\SalesRule\Model\Rule\Condition\Product as RuleConditionProduct; +use Magento\SalesRule\Model\Rule\Condition\Product\Combine as RuleCondProductCombine; /** * Subselect conditions for product. */ -class Subselect extends \Magento\SalesRule\Model\Rule\Condition\Product\Combine +class Subselect extends RuleCondProductCombine { /** - * @param \Magento\Rule\Model\Condition\Context $context - * @param \Magento\SalesRule\Model\Rule\Condition\Product $ruleConditionProduct + * @param ConditionContext $context + * @param RuleConditionProduct $ruleConditionProduct * @param array $data */ public function __construct( - \Magento\Rule\Model\Condition\Context $context, - \Magento\SalesRule\Model\Rule\Condition\Product $ruleConditionProduct, + ConditionContext $context, + RuleConditionProduct $ruleConditionProduct, array $data = [] ) { parent::__construct($context, $ruleConditionProduct, $data); - $this->setType(\Magento\SalesRule\Model\Rule\Condition\Product\Subselect::class)->setValue(null); + $this->setType(Subselect::class)->setValue(null); } /** @@ -139,11 +144,11 @@ public function asHtml() /** * Validate * - * @param \Magento\Framework\Model\AbstractModel $model + * @param AbstractModel $model * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ - public function validate(\Magento\Framework\Model\AbstractModel $model) + public function validate(AbstractModel $model) { if (!$this->getConditions()) { return false; @@ -152,7 +157,7 @@ public function validate(\Magento\Framework\Model\AbstractModel $model) $total = 0; foreach ($model->getQuote()->getAllVisibleItems() as $item) { $hasValidChild = false; - $useChildrenTotal = ($item->getProductType() == \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE); + $useChildrenTotal = ($item->getProductType() == ProductType::TYPE_BUNDLE); $childrenAttrTotal = 0; $children = $item->getChildren(); if (!empty($children)) { diff --git a/app/code/Magento/SalesRule/Model/Rule/Customer.php b/app/code/Magento/SalesRule/Model/Rule/Customer.php index 34f643aca5983..41de51a7fecd6 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Customer.php +++ b/app/code/Magento/SalesRule/Model/Rule/Customer.php @@ -5,19 +5,22 @@ */ namespace Magento\SalesRule\Model\Rule; +use Magento\Framework\Model\AbstractModel; +use Magento\SalesRule\Model\ResourceModel\Rule\Customer as ResourceRuleCustomer; + /** * SalesRule Rule Customer Model * * @method int getRuleId() - * @method \Magento\SalesRule\Model\Rule\Customer setRuleId(int $value) + * @method Customer setRuleId(int $value) * @method int getCustomerId() - * @method \Magento\SalesRule\Model\Rule\Customer setCustomerId(int $value) + * @method Customer setCustomerId(int $value) * @method int getTimesUsed() - * @method \Magento\SalesRule\Model\Rule\Customer setTimesUsed(int $value) + * @method Customer setTimesUsed(int $value) * * @author Magento Core Team */ -class Customer extends \Magento\Framework\Model\AbstractModel +class Customer extends AbstractModel { /** * Constructor @@ -27,7 +30,7 @@ class Customer extends \Magento\Framework\Model\AbstractModel protected function _construct() { parent::_construct(); - $this->_init(\Magento\SalesRule\Model\ResourceModel\Rule\Customer::class); + $this->_init(ResourceRuleCustomer::class); } /** diff --git a/app/code/Magento/SalesRule/Model/Rule/DataProvider.php b/app/code/Magento/SalesRule/Model/Rule/DataProvider.php index 25f0ef91eae68..a181630df28af 100644 --- a/app/code/Magento/SalesRule/Model/Rule/DataProvider.php +++ b/app/code/Magento/SalesRule/Model/Rule/DataProvider.php @@ -5,15 +5,20 @@ */ namespace Magento\SalesRule\Model\Rule; +use Magento\Framework\App\ObjectManager; use Magento\Framework\App\Request\DataPersistorInterface; +use Magento\Framework\Registry; +use Magento\SalesRule\Model\RegistryConstants; use Magento\SalesRule\Model\ResourceModel\Rule\Collection; use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory; use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\Rule\Metadata\ValueProvider as MetadataValueProvider; +use Magento\Ui\DataProvider\AbstractDataProvider; /** * Class DataProvider */ -class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider +class DataProvider extends AbstractDataProvider { /** * @var Collection @@ -28,20 +33,10 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider /** * Core registry * - * @var \Magento\Framework\Registry + * @var Registry */ protected $coreRegistry; - /** - * @var \Magento\SalesRule\Model\Rule\Metadata\ValueProvider - */ - protected $metadataValueProvider; - - /** - * @var DataPersistorInterface - */ - private $dataPersistor; - /** * Initialize dependencies. * @@ -49,7 +44,7 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider * @param string $primaryFieldName * @param string $requestFieldName * @param CollectionFactory $collectionFactory - * @param \Magento\Framework\Registry $registry + * @param Registry $registry * @param Metadata\ValueProvider $metadataValueProvider * @param array $meta * @param array $data @@ -60,17 +55,16 @@ public function __construct( $primaryFieldName, $requestFieldName, CollectionFactory $collectionFactory, - \Magento\Framework\Registry $registry, - \Magento\SalesRule\Model\Rule\Metadata\ValueProvider $metadataValueProvider, + Registry $registry, + protected readonly MetadataValueProvider $metadataValueProvider, array $meta = [], array $data = [], - DataPersistorInterface $dataPersistor = null + private ?DataPersistorInterface $dataPersistor = null ) { $this->collection = $collectionFactory->create(); $this->coreRegistry = $registry; - $this->metadataValueProvider = $metadataValueProvider; $meta = array_replace_recursive($this->getMetadataValues(), $meta); - $this->dataPersistor = $dataPersistor ?? \Magento\Framework\App\ObjectManager::getInstance()->get( + $this->dataPersistor = $dataPersistor ?? ObjectManager::getInstance()->get( DataPersistorInterface::class ); parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data); @@ -83,7 +77,7 @@ public function __construct( */ protected function getMetadataValues() { - $rule = $this->coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE); + $rule = $this->coreRegistry->registry(RegistryConstants::CURRENT_SALES_RULE); return $this->metadataValueProvider->getMetadataValues($rule); } diff --git a/app/code/Magento/SalesRule/Model/Rule/Metadata/ValueProvider.php b/app/code/Magento/SalesRule/Model/Rule/Metadata/ValueProvider.php index e4aaaec98dc79..9d4af4edf5165 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Metadata/ValueProvider.php +++ b/app/code/Magento/SalesRule/Model/Rule/Metadata/ValueProvider.php @@ -19,36 +19,6 @@ */ class ValueProvider { - /** - * @var Store - */ - protected $store; - - /** - * @var GroupRepositoryInterface - */ - protected $groupRepository; - - /** - * @var SearchCriteriaBuilder - */ - protected $searchCriteriaBuilder; - - /** - * @var DataObject - */ - protected $objectConverter; - - /** - * @var RuleFactory - */ - protected $salesRuleFactory; - - /** - * @var SimpleActionOptionsProvider - */ - private $simpleActionOptionsProvider; - /** * Initialize dependencies. * @@ -60,18 +30,13 @@ class ValueProvider * @param SimpleActionOptionsProvider|null $simpleActionOptionsProvider */ public function __construct( - Store $store, - GroupRepositoryInterface $groupRepository, - SearchCriteriaBuilder $searchCriteriaBuilder, - DataObject $objectConverter, - RuleFactory $salesRuleFactory, - SimpleActionOptionsProvider $simpleActionOptionsProvider = null + protected readonly Store $store, + protected readonly GroupRepositoryInterface $groupRepository, + protected readonly SearchCriteriaBuilder $searchCriteriaBuilder, + protected readonly DataObject $objectConverter, + protected readonly RuleFactory $salesRuleFactory, + private ?SimpleActionOptionsProvider $simpleActionOptionsProvider = null ) { - $this->store = $store; - $this->groupRepository = $groupRepository; - $this->searchCriteriaBuilder = $searchCriteriaBuilder; - $this->objectConverter = $objectConverter; - $this->salesRuleFactory = $salesRuleFactory; $this->simpleActionOptionsProvider = $simpleActionOptionsProvider ?: ObjectManager::getInstance()->get(SimpleActionOptionsProvider::class); } diff --git a/app/code/Magento/SalesRule/Model/Rule/QuoteResetAppliedRules.php b/app/code/Magento/SalesRule/Model/Rule/QuoteResetAppliedRules.php index 5c1d98b65a0e4..b271f2b8981eb 100644 --- a/app/code/Magento/SalesRule/Model/Rule/QuoteResetAppliedRules.php +++ b/app/code/Magento/SalesRule/Model/Rule/QuoteResetAppliedRules.php @@ -7,6 +7,7 @@ namespace Magento\SalesRule\Model\Rule; +use Magento\Quote\Api\Data\CartInterface; use Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface; /** @@ -17,7 +18,7 @@ class QuoteResetAppliedRules implements QuoteResetAppliedRulesInterface /** * @inheritDoc */ - public function execute(\Magento\Quote\Api\Data\CartInterface $quote): void + public function execute(CartInterface $quote): void { $quote->setCartFixedRules([]); } diff --git a/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsAsync.php b/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsAsync.php index a8fd60c2297ec..cdf47ee078cbb 100644 --- a/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsAsync.php +++ b/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsAsync.php @@ -23,31 +23,6 @@ class RuleQuoteRecollectTotalsAsync implements RuleQuoteRecollectTotalsInterface { private const TOPIC_NAME = 'sales.rule.quote.trigger.recollect'; - /** - * @var BulkManagementInterface - */ - private $bulkManagement; - - /** - * @var OperationInterfaceFactory - */ - private $operationFactory; - - /** - * @var IdentityGeneratorInterface - */ - private $identityService; - - /** - * @var SerializerInterface - */ - private $serializer; - - /** - * @var UserContextInterface - */ - private $userContext; - /** * @param BulkManagementInterface $bulkManagement * @param OperationInterfaceFactory $operationFactory @@ -56,17 +31,12 @@ class RuleQuoteRecollectTotalsAsync implements RuleQuoteRecollectTotalsInterface * @param UserContextInterface $userContext */ public function __construct( - BulkManagementInterface $bulkManagement, - OperationInterfaceFactory $operationFactory, - IdentityGeneratorInterface $identityService, - SerializerInterface $serializer, - UserContextInterface $userContext + private readonly BulkManagementInterface $bulkManagement, + private readonly OperationInterfaceFactory $operationFactory, + private readonly IdentityGeneratorInterface $identityService, + private readonly SerializerInterface $serializer, + private readonly UserContextInterface $userContext ) { - $this->bulkManagement = $bulkManagement; - $this->operationFactory = $operationFactory; - $this->identityService = $identityService; - $this->serializer = $serializer; - $this->userContext = $userContext; } /** diff --git a/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsOnDemand.php b/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsOnDemand.php index 307db0da37bee..c9815a65d7156 100644 --- a/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsOnDemand.php +++ b/app/code/Magento/SalesRule/Model/Rule/RuleQuoteRecollectTotalsOnDemand.php @@ -27,19 +27,14 @@ class RuleQuoteRecollectTotalsOnDemand implements RuleQuoteRecollectTotalsInterf */ private const UPDATE_BATCH_SIZE = 1000; - /** - * @var Quote - */ - private $quoteResourceModel; - /** * Initializes dependencies * * @param Quote $quoteResourceModel */ - public function __construct(Quote $quoteResourceModel) - { - $this->quoteResourceModel = $quoteResourceModel; + public function __construct( + private readonly Quote $quoteResourceModel + ) { } /** diff --git a/app/code/Magento/SalesRule/Model/RuleRepository.php b/app/code/Magento/SalesRule/Model/RuleRepository.php index 2016ae0dde1c7..b143066f6f961 100644 --- a/app/code/Magento/SalesRule/Model/RuleRepository.php +++ b/app/code/Magento/SalesRule/Model/RuleRepository.php @@ -5,110 +5,66 @@ */ namespace Magento\SalesRule\Model; +use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface; use Magento\Framework\Api\Search\FilterGroup; use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface; use Magento\Framework\Api\SearchCriteriaInterface; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Reflection\DataObjectProcessor; +use Magento\SalesRule\Api\Data\ConditionInterfaceFactory; +use Magento\SalesRule\Api\Data\RuleInterface; +use Magento\SalesRule\Api\Data\RuleInterfaceFactory; +use Magento\SalesRule\Api\Data\RuleSearchResultInterfaceFactory; +use Magento\SalesRule\Api\RuleRepositoryInterface; +use Magento\SalesRule\Model\Converter\ToDataModel as ToDataModelConverter; +use Magento\SalesRule\Model\Converter\ToModel as ToModelConverter; use Magento\SalesRule\Model\ResourceModel\Rule\Collection; +use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection; +use Magento\SalesRule\Model\Rule as ModelRule; +use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory as RuleCollectionFactory; /** * Sales rule CRUD class * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class RuleRepository implements \Magento\SalesRule\Api\RuleRepositoryInterface +class RuleRepository implements RuleRepositoryInterface { - /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - protected $ruleFactory; - - /** - * @var \Magento\SalesRule\Api\Data\RuleInterfaceFactory - */ - protected $ruleDataFactory; - - /** - * @var \Magento\SalesRule\Api\Data\ConditionInterfaceFactory - */ - protected $conditionDataFactory; - - /** - * @var \Magento\SalesRule\Model\Converter\ToDataModel - */ - protected $toDataModelConverter; - - /** - * @var \Magento\SalesRule\Model\Converter\ToModel - */ - protected $toModelConverter; - - /** - * @var \Magento\Framework\Reflection\DataObjectProcessor - */ - protected $dataObjectProcessor; - - /** - * @var \Magento\SalesRule\Api\Data\RuleSearchResultInterfaceFactory - */ - protected $searchResultFactory; - - /** - * @var \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface - */ - protected $extensionAttributesJoinProcessor; - - /** - * @var \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory - */ - protected $ruleCollectionFactory; - - /** - * @var \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface - */ - private $collectionProcessor; - /** * RuleRepository constructor. * @param RuleFactory $ruleFactory - * @param \Magento\SalesRule\Api\Data\RuleInterfaceFactory $ruleDataFactory - * @param \Magento\SalesRule\Api\Data\ConditionInterfaceFactory $conditionDataFactory - * @param Converter\ToDataModel $toDataModelConverter - * @param Converter\ToModel $toModelConverter - * @param \Magento\SalesRule\Api\Data\RuleSearchResultInterfaceFactory $searchResultFactory - * @param \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor + * @param RuleInterfaceFactory $ruleDataFactory + * @param ConditionInterfaceFactory $conditionDataFactory + * @param ToDataModelConverter $toDataModelConverter + * @param ToModelConverter $toModelConverter + * @param RuleSearchResultInterfaceFactory $searchResultFactory + * @param JoinProcessorInterface $extensionAttributesJoinProcessor * @param ResourceModel\Rule\CollectionFactory $ruleCollectionFactory - * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + * @param DataObjectProcessor $dataObjectProcessor * @param CollectionProcessorInterface|null $collectionProcessor * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\SalesRule\Model\RuleFactory $ruleFactory, - \Magento\SalesRule\Api\Data\RuleInterfaceFactory $ruleDataFactory, - \Magento\SalesRule\Api\Data\ConditionInterfaceFactory $conditionDataFactory, - \Magento\SalesRule\Model\Converter\ToDataModel $toDataModelConverter, - \Magento\SalesRule\Model\Converter\ToModel $toModelConverter, - \Magento\SalesRule\Api\Data\RuleSearchResultInterfaceFactory $searchResultFactory, - \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor, - \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $ruleCollectionFactory, - \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, - CollectionProcessorInterface $collectionProcessor = null + protected readonly RuleFactory $ruleFactory, + protected readonly RuleInterfaceFactory $ruleDataFactory, + protected readonly ConditionInterfaceFactory $conditionDataFactory, + protected readonly ToDataModelConverter $toDataModelConverter, + protected readonly ToModelConverter $toModelConverter, + protected readonly RuleSearchResultInterfaceFactory $searchResultFactory, + protected readonly JoinProcessorInterface $extensionAttributesJoinProcessor, + protected readonly RuleCollectionFactory $ruleCollectionFactory, + protected readonly DataObjectProcessor $dataObjectProcessor, + private ?CollectionProcessorInterface $collectionProcessor = null ) { - $this->ruleFactory = $ruleFactory; - $this->ruleDataFactory = $ruleDataFactory; - $this->conditionDataFactory = $conditionDataFactory; - $this->toDataModelConverter = $toDataModelConverter; - $this->toModelConverter = $toModelConverter; - $this->searchResultFactory = $searchResultFactory; - $this->extensionAttributesJoinProcessor = $extensionAttributesJoinProcessor; - $this->ruleCollectionFactory = $ruleCollectionFactory; - $this->dataObjectProcessor = $dataObjectProcessor; $this->collectionProcessor = $collectionProcessor ?: $this->getCollectionProcessor(); } /** * @inheritdoc */ - public function save(\Magento\SalesRule\Api\Data\RuleInterface $rule) + public function save(RuleInterface $rule) { $model = $this->toModelConverter->toModel($rule); $model->save(); @@ -126,7 +82,7 @@ public function getById($id) ->load($id); if (!$model->getId()) { - throw new \Magento\Framework\Exception\NoSuchEntityException(); + throw new NoSuchEntityException(); } $model->getStoreLabels(); @@ -139,14 +95,14 @@ public function getById($id) */ public function getList(SearchCriteriaInterface $searchCriteria) { - /** @var \Magento\SalesRule\Model\ResourceModel\Rule\Collection $collection */ + /** @var RuleCollection $collection */ $collection = $this->ruleCollectionFactory->create(); - $ruleInterfaceName = \Magento\SalesRule\Api\Data\RuleInterface::class; + $ruleInterfaceName = RuleInterface::class; $this->extensionAttributesJoinProcessor->process($collection, $ruleInterfaceName); $this->collectionProcessor->process($searchCriteria, $collection); $rules = []; - /** @var \Magento\SalesRule\Model\Rule $ruleModel */ + /** @var ModelRule $ruleModel */ foreach ($collection->getItems() as $ruleModel) { $ruleModel->load($ruleModel->getId()); $ruleModel->getStoreLabels(); @@ -165,15 +121,15 @@ public function getList(SearchCriteriaInterface $searchCriteria) * * @param int $id * @return bool true on success - * @throws \Magento\Framework\Exception\NoSuchEntityException - * @throws \Magento\Framework\Exception\LocalizedException + * @throws NoSuchEntityException + * @throws LocalizedException */ public function deleteById($id) { $model = $this->ruleFactory->create()->load($id); if (!$model->getId()) { - throw new \Magento\Framework\Exception\NoSuchEntityException(); + throw new NoSuchEntityException(); } $model->delete(); return true; @@ -212,8 +168,8 @@ protected function addFilterGroupToCollection( private function getCollectionProcessor() { if (!$this->collectionProcessor) { - $this->collectionProcessor = \Magento\Framework\App\ObjectManager::getInstance()->get( - \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface::class + $this->collectionProcessor = ObjectManager::getInstance()->get( + CollectionProcessorInterface::class ); } return $this->collectionProcessor; diff --git a/app/code/Magento/SalesRule/Model/RulesApplier.php b/app/code/Magento/SalesRule/Model/RulesApplier.php index a0189888d9746..3bbb30b7de4f6 100644 --- a/app/code/Magento/SalesRule/Model/RulesApplier.php +++ b/app/code/Magento/SalesRule/Model/RulesApplier.php @@ -5,7 +5,9 @@ */ namespace Magento\SalesRule\Model; +use Magento\Framework\Event\ManagerInterface as EventManagerInterface; use Magento\Quote\Model\Quote\Address; +use Magento\Quote\Model\Quote\Address as QuoteAddress; use Magento\Quote\Model\Quote\Item\AbstractItem; use Magento\SalesRule\Model\Data\RuleDiscount; use Magento\SalesRule\Model\Quote\ChildrenValidationLocator; @@ -26,40 +28,20 @@ class RulesApplier /** * Application Event Dispatcher * - * @var \Magento\Framework\Event\ManagerInterface + * @var EventManagerInterface */ protected $_eventManager; /** - * @var \Magento\SalesRule\Model\Utility + * @var Utility */ protected $validatorUtility; /** - * @var ChildrenValidationLocator - */ - private $childrenValidationLocator; - - /** - * @var CalculatorFactory - */ - private $calculatorFactory; - - /** - * @var \Magento\SalesRule\Model\Rule\Action\Discount\DataFactory + * @var DataFactory */ protected $discountFactory; - /** - * @var RuleDiscountInterfaceFactory - */ - private $discountInterfaceFactory; - - /** - * @var DiscountDataInterfaceFactory - */ - private $discountDataInterfaceFactory; - /** * @var array */ @@ -68,7 +50,7 @@ class RulesApplier /** * RulesApplier constructor. * @param CalculatorFactory $calculatorFactory - * @param \Magento\Framework\Event\ManagerInterface $eventManager + * @param EventManagerInterface $eventManager * @param Utility $utility * @param ChildrenValidationLocator|null $childrenValidationLocator * @param DataFactory|null $discountDataFactory @@ -76,15 +58,14 @@ class RulesApplier * @param DiscountDataInterfaceFactory|null $discountDataInterfaceFactory */ public function __construct( - \Magento\SalesRule\Model\Rule\Action\Discount\CalculatorFactory $calculatorFactory, - \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\SalesRule\Model\Utility $utility, - ChildrenValidationLocator $childrenValidationLocator = null, + private readonly CalculatorFactory $calculatorFactory, + EventManagerInterface $eventManager, + Utility $utility, + private ?ChildrenValidationLocator $childrenValidationLocator = null, DataFactory $discountDataFactory = null, - RuleDiscountInterfaceFactory $discountInterfaceFactory = null, - DiscountDataInterfaceFactory $discountDataInterfaceFactory = null + private ?RuleDiscountInterfaceFactory $discountInterfaceFactory = null, + private ?DiscountDataInterfaceFactory $discountDataInterfaceFactory = null ) { - $this->calculatorFactory = $calculatorFactory; $this->validatorUtility = $utility; $this->_eventManager = $eventManager; $this->childrenValidationLocator = $childrenValidationLocator @@ -178,7 +159,7 @@ public function addDiscountDescription($address, $rule) * * @param AbstractItem $item * @param Rule $rule - * @param \Magento\Quote\Model\Quote\Address $address + * @param QuoteAddress $address * @param mixed $couponCode * @return $this */ @@ -211,8 +192,8 @@ protected function applyRule($item, $rule, $address, $couponCode) * Get discount Data * * @param AbstractItem $item - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Address $address + * @param Rule $rule + * @param QuoteAddress $address * @return Data */ protected function getDiscountData($item, $rule, $address) @@ -240,9 +221,9 @@ protected function getDiscountData($item, $rule, $address) * Set Discount Breakdown * * @param Data $discountData - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Address $address + * @param AbstractItem $item + * @param Rule $rule + * @param QuoteAddress $address * @return $this */ private function setDiscountBreakdown($discountData, $item, $rule, $address) diff --git a/app/code/Magento/SalesRule/Model/Service/CouponManagementService.php b/app/code/Magento/SalesRule/Model/Service/CouponManagementService.php index 7f355a62c4631..960538203e264 100644 --- a/app/code/Magento/SalesRule/Model/Service/CouponManagementService.php +++ b/app/code/Magento/SalesRule/Model/Service/CouponManagementService.php @@ -5,87 +5,52 @@ */ namespace Magento\SalesRule\Model\Service; +use Exception; use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\App\ObjectManager; +use Magento\Framework\Exception\InputException; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Exception\NoSuchEntityException; +use Magento\SalesRule\Api\CouponManagementInterface; use Magento\SalesRule\Api\CouponRepositoryInterface; +use Magento\SalesRule\Api\Data\CouponGenerationSpecInterface; +use Magento\SalesRule\Api\Data\CouponMassDeleteResultInterface; +use Magento\SalesRule\Api\Data\CouponMassDeleteResultInterfaceFactory; +use Magento\SalesRule\Model\Coupon; +use Magento\SalesRule\Model\Coupon\Massgenerator as CouponMassgenerator; +use Magento\SalesRule\Model\CouponFactory; +use Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\RuleFactory; +use Magento\SalesRule\Model\Spi\CouponResourceInterface; /** * Coupon management service class * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class CouponManagementService implements \Magento\SalesRule\Api\CouponManagementInterface +class CouponManagementService implements CouponManagementInterface { /** - * @var \Magento\SalesRule\Model\CouponFactory - * @deprecated 101.1.2 - */ - protected $couponFactory; - - /** - * @var \Magento\SalesRule\Model\RuleFactory - */ - protected $ruleFactory; - - /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory - * @deprecated 101.1.2 - */ - protected $collectionFactory; - - /** - * @var \Magento\SalesRule\Model\Coupon\Massgenerator - */ - protected $couponGenerator; - - /** - * @var \Magento\SalesRule\Model\Spi\CouponResourceInterface - * @deprecated 101.1.2 - */ - protected $resourceModel; - - /** - * var \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterfaceFactory - */ - protected $couponMassDeleteResultFactory; - - /** - * @var SearchCriteriaBuilder - */ - private $criteriaBuilder; - - /** - * @var CouponRepositoryInterface - */ - private $repository; - - /** - * @param \Magento\SalesRule\Model\CouponFactory $couponFactory - * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory - * @param \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory $collectionFactory - * @param \Magento\SalesRule\Model\Coupon\Massgenerator $couponGenerator - * @param \Magento\SalesRule\Model\Spi\CouponResourceInterface $resourceModel - * @param \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterfaceFactory $couponMassDeleteResultFactory + * @param CouponFactory $couponFactory @deprecated 101.1.2 + * @param RuleFactory $ruleFactory + * @param CollectionFactory $collectionFactory @deprecated 101.1.2 + * @param CouponMassgenerator $couponGenerator + * @param CouponResourceInterface $resourceModel @deprecated 101.1.2 + * @param CouponMassDeleteResultInterfaceFactory $couponMassDeleteResultFactory * @param SearchCriteriaBuilder|null $criteriaBuilder * @param CouponRepositoryInterface|null $repository */ public function __construct( - \Magento\SalesRule\Model\CouponFactory $couponFactory, - \Magento\SalesRule\Model\RuleFactory $ruleFactory, - \Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory $collectionFactory, - \Magento\SalesRule\Model\Coupon\Massgenerator $couponGenerator, - \Magento\SalesRule\Model\Spi\CouponResourceInterface $resourceModel, - \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterfaceFactory $couponMassDeleteResultFactory, - ?SearchCriteriaBuilder $criteriaBuilder = null, - ?CouponRepositoryInterface $repository = null + protected readonly CouponFactory $couponFactory, + protected readonly RuleFactory $ruleFactory, + protected readonly CollectionFactory $collectionFactory, + protected readonly CouponMassgenerator $couponGenerator, + protected readonly CouponResourceInterface $resourceModel, + protected readonly CouponMassDeleteResultInterfaceFactory $couponMassDeleteResultFactory, + private ?SearchCriteriaBuilder $criteriaBuilder = null, + private ?CouponRepositoryInterface $repository = null ) { - $this->couponFactory = $couponFactory; - $this->ruleFactory = $ruleFactory; - $this->collectionFactory = $collectionFactory; - $this->couponGenerator = $couponGenerator; - $this->resourceModel = $resourceModel; - $this->couponMassDeleteResultFactory = $couponMassDeleteResultFactory; $this->criteriaBuilder = $criteriaBuilder ?? ObjectManager::getInstance()->get(SearchCriteriaBuilder::class); $this->repository = $repository ?? ObjectManager::getInstance()->get(CouponRepositoryInterface::class); } @@ -93,30 +58,30 @@ public function __construct( /** * Generate coupon for a rule * - * @param \Magento\SalesRule\Api\Data\CouponGenerationSpecInterface $couponSpec + * @param CouponGenerationSpecInterface $couponSpec * @return string[] - * @throws \Magento\Framework\Exception\InputException - * @throws \Magento\Framework\Exception\LocalizedException + * @throws InputException + * @throws LocalizedException */ - public function generate(\Magento\SalesRule\Api\Data\CouponGenerationSpecInterface $couponSpec) + public function generate(CouponGenerationSpecInterface $couponSpec) { $data = $this->convertCouponSpec($couponSpec); if (!$this->couponGenerator->validateData($data)) { - throw new \Magento\Framework\Exception\InputException(); + throw new InputException(); } try { $rule = $this->ruleFactory->create()->load($couponSpec->getRuleId()); if (!$rule->getRuleId()) { throw NoSuchEntityException::singleField( - \Magento\SalesRule\Model\Coupon::KEY_RULE_ID, + Coupon::KEY_RULE_ID, $couponSpec->getRuleId() ); } if (!$rule->getUseAutoGeneration() - && $rule->getCouponType() != \Magento\SalesRule\Model\Rule::COUPON_TYPE_AUTO + && $rule->getCouponType() != Rule::COUPON_TYPE_AUTO ) { - throw new \Magento\Framework\Exception\LocalizedException( + throw new LocalizedException( __('Specified rule does not allow automatic coupon generation') ); } @@ -128,8 +93,8 @@ public function generate(\Magento\SalesRule\Api\Data\CouponGenerationSpecInterfa $this->couponGenerator->generatePool(); return $this->couponGenerator->getGeneratedCodes(); - } catch (\Exception $e) { - throw new \Magento\Framework\Exception\LocalizedException( + } catch (Exception $e) { + throw new LocalizedException( __('Error occurred when generating coupons: %1', $e->getMessage()) ); } @@ -138,10 +103,10 @@ public function generate(\Magento\SalesRule\Api\Data\CouponGenerationSpecInterfa /** * Convert CouponGenerationSpecInterface to data array expected by Massgenerator * - * @param \Magento\SalesRule\Api\Data\CouponGenerationSpecInterface $couponSpec + * @param CouponGenerationSpecInterface $couponSpec * @return array */ - protected function convertCouponSpec(\Magento\SalesRule\Api\Data\CouponGenerationSpecInterface $couponSpec) + protected function convertCouponSpec(CouponGenerationSpecInterface $couponSpec) { $data = []; $data['rule_id'] = $couponSpec->getRuleId(); @@ -169,8 +134,8 @@ protected function convertCouponSpec(\Magento\SalesRule\Api\Data\CouponGeneratio * * @param int[] $ids * @param bool $ignoreInvalidCoupons - * @return \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterface - * @throws \Magento\Framework\Exception\LocalizedException + * @return CouponMassDeleteResultInterface + * @throws LocalizedException */ public function deleteByIds(array $ids, $ignoreInvalidCoupons = true) { @@ -182,8 +147,8 @@ public function deleteByIds(array $ids, $ignoreInvalidCoupons = true) * * @param string[] $codes * @param bool $ignoreInvalidCoupons - * @return \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterface - * @throws \Magento\Framework\Exception\LocalizedException + * @return CouponMassDeleteResultInterface + * @throws LocalizedException */ public function deleteByCodes(array $codes, $ignoreInvalidCoupons = true) { @@ -196,8 +161,8 @@ public function deleteByCodes(array $codes, $ignoreInvalidCoupons = true) * @param string $fieldName * @param string[] $fieldValues * @param bool $ignoreInvalid - * @return \Magento\SalesRule\Api\Data\CouponMassDeleteResultInterface - * @throws \Magento\Framework\Exception\LocalizedException + * @return CouponMassDeleteResultInterface + * @throws LocalizedException */ protected function massDelete($fieldName, array $fieldValues, $ignoreInvalid) { @@ -206,7 +171,7 @@ protected function massDelete($fieldName, array $fieldValues, $ignoreInvalid) if (!$ignoreInvalid) { if ($couponsCollection->getTotalCount() != count($fieldValues)) { - throw new \Magento\Framework\Exception\LocalizedException(__('Some coupons are invalid.')); + throw new LocalizedException(__('Some coupons are invalid.')); } } @@ -217,7 +182,7 @@ protected function massDelete($fieldName, array $fieldValues, $ignoreInvalid) $couponValue = ($fieldName == 'code') ? $coupon->getCode() : $coupon->getCouponId(); try { $this->repository->deleteById($coupon->getCouponId()); - } catch (\Exception $e) { + } catch (Exception $e) { $failedItems[] = $couponValue; } unset($fieldValues[$couponValue]); diff --git a/app/code/Magento/SalesRule/Model/Service/CouponUsagePublisher.php b/app/code/Magento/SalesRule/Model/Service/CouponUsagePublisher.php index 1d1bbb1f63ed3..fd0b20a54fc04 100644 --- a/app/code/Magento/SalesRule/Model/Service/CouponUsagePublisher.php +++ b/app/code/Magento/SalesRule/Model/Service/CouponUsagePublisher.php @@ -22,31 +22,11 @@ class CouponUsagePublisher { private const TOPIC_NAME = 'sales.rule.update.coupon.usage'; - /** - * @var BulkManagementInterface - */ - private $bulkManagement; - /** * @var OperationInterfaceFactory */ private $operationFactory; - /** - * @var IdentityGeneratorInterface - */ - private $identityService; - - /** - * @var SerializerInterface - */ - private $serializer; - - /** - * @var UserContextInterface - */ - private $userContext; - /** * @param BulkManagementInterface $bulkManagement * @param OperationInterfaceFactory $operartionFactory @@ -55,23 +35,19 @@ class CouponUsagePublisher * @param UserContextInterface $userContext */ public function __construct( - BulkManagementInterface $bulkManagement, + private readonly BulkManagementInterface $bulkManagement, OperationInterfaceFactory $operartionFactory, - IdentityGeneratorInterface $identityService, - SerializerInterface $serializer, - UserContextInterface $userContext + private readonly IdentityGeneratorInterface $identityService, + private readonly SerializerInterface $serializer, + private readonly UserContextInterface $userContext ) { - $this->bulkManagement = $bulkManagement; $this->operationFactory = $operartionFactory; - $this->identityService = $identityService; - $this->serializer = $serializer; - $this->userContext = $userContext; } /** * Publish sales rule usage info into the queue * - * @param string $updateInfo + * @param UpdateInfo $updateInfo * @return boolean */ public function publish(UpdateInfo $updateInfo): bool diff --git a/app/code/Magento/SalesRule/Model/System/Config/Source/Coupon/Format.php b/app/code/Magento/SalesRule/Model/System/Config/Source/Coupon/Format.php index 04e9b525f5274..c93e691591a3e 100644 --- a/app/code/Magento/SalesRule/Model/System/Config/Source/Coupon/Format.php +++ b/app/code/Magento/SalesRule/Model/System/Config/Source/Coupon/Format.php @@ -5,25 +5,29 @@ */ namespace Magento\SalesRule\Model\System\Config\Source\Coupon; +use Magento\Framework\Option\ArrayInterface; +use Magento\SalesRule\Helper\Coupon as CouponHelper; + /** * Options for Code Format Field in Auto Generated Specific Coupon Codes configuration section * * @author Magento Core Team */ -class Format implements \Magento\Framework\Option\ArrayInterface +class Format implements ArrayInterface { /** * Sales rule coupon * - * @var \Magento\SalesRule\Helper\Coupon + * @var CouponHelper */ protected $_salesRuleCoupon = null; /** - * @param \Magento\SalesRule\Helper\Coupon $salesRuleCoupon + * @param CouponHelper $salesRuleCoupon */ - public function __construct(\Magento\SalesRule\Helper\Coupon $salesRuleCoupon) - { + public function __construct( + CouponHelper $salesRuleCoupon + ) { $this->_salesRuleCoupon = $salesRuleCoupon; } diff --git a/app/code/Magento/SalesRule/Model/Utility.php b/app/code/Magento/SalesRule/Model/Utility.php index e91bde82eac0e..8b391f1886219 100644 --- a/app/code/Magento/SalesRule/Model/Utility.php +++ b/app/code/Magento/SalesRule/Model/Utility.php @@ -6,7 +6,13 @@ namespace Magento\SalesRule\Model; +use Magento\Framework\DataObjectFactory; use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Quote\Model\Quote\Address as QuoteAddress; +use Magento\Quote\Model\Quote\Item\AbstractItem as QuoteAbstractItem; +use Magento\SalesRule\Model\ResourceModel\Coupon\UsageFactory; +use Magento\SalesRule\Model\Rule\Action\Discount\Data as DiscountData; +use Magento\SalesRule\Model\Rule\Customer as RuleCustomer; class Utility { @@ -21,56 +27,26 @@ class Utility protected $_baseRoundingDeltas = []; /** - * @var \Magento\SalesRule\Model\ResourceModel\Coupon\UsageFactory - */ - protected $usageFactory; - - /** - * @var \Magento\SalesRule\Model\CouponFactory - */ - protected $couponFactory; - - /** - * @var \Magento\SalesRule\Model\Rule\CustomerFactory - */ - protected $customerFactory; - - /** - * @var \Magento\Framework\DataObjectFactory - */ - protected $objectFactory; - - /** - * @var PriceCurrencyInterface - */ - protected $priceCurrency; - - /** - * @param \Magento\SalesRule\Model\ResourceModel\Coupon\UsageFactory $usageFactory + * @param UsageFactory $usageFactory * @param CouponFactory $couponFactory * @param Rule\CustomerFactory $customerFactory - * @param \Magento\Framework\DataObjectFactory $objectFactory + * @param DataObjectFactory $objectFactory * @param PriceCurrencyInterface $priceCurrency */ public function __construct( - \Magento\SalesRule\Model\ResourceModel\Coupon\UsageFactory $usageFactory, - \Magento\SalesRule\Model\CouponFactory $couponFactory, - \Magento\SalesRule\Model\Rule\CustomerFactory $customerFactory, - \Magento\Framework\DataObjectFactory $objectFactory, - PriceCurrencyInterface $priceCurrency + protected readonly UsageFactory $usageFactory, + protected readonly CouponFactory $couponFactory, + protected readonly Rule\CustomerFactory $customerFactory, + protected readonly DataObjectFactory $objectFactory, + protected readonly PriceCurrencyInterface $priceCurrency ) { - $this->couponFactory = $couponFactory; - $this->customerFactory = $customerFactory; - $this->usageFactory = $usageFactory; - $this->objectFactory = $objectFactory; - $this->priceCurrency = $priceCurrency; } /** * Check if rule can be applied for specific address/quote/customer * - * @param \Magento\SalesRule\Model\Rule $rule - * @param \Magento\Quote\Model\Quote\Address $address + * @param Rule $rule + * @param QuoteAddress $address * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) @@ -84,10 +60,10 @@ public function canProcessRule($rule, $address) /** * check per coupon usage limit */ - if ($rule->getCouponType() != \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON) { + if ($rule->getCouponType() != Rule::COUPON_TYPE_NO_COUPON) { $couponCode = $address->getQuote()->getCouponCode(); if ($couponCode !== null && strlen($couponCode)) { - /** @var \Magento\SalesRule\Model\Coupon $coupon */ + /** @var Coupon $coupon */ $coupon = $this->couponFactory->create(); $coupon->load($couponCode, 'code'); if ($coupon->getId()) { @@ -122,7 +98,7 @@ public function canProcessRule($rule, $address) $ruleId = $rule->getId(); if ($ruleId && $rule->getUsesPerCustomer()) { $customerId = $address->getQuote()->getCustomerId(); - /** @var \Magento\SalesRule\Model\Rule\Customer $ruleCustomer */ + /** @var RuleCustomer $ruleCustomer */ $ruleCustomer = $this->customerFactory->create(); $ruleCustomer->loadByCustomerRule($customerId, $ruleId); if ($ruleCustomer->getId()) { @@ -150,14 +126,14 @@ public function canProcessRule($rule, $address) /** * Set discount amount (found min) * - * @param \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param DiscountData $discountData + * @param QuoteAbstractItem $item * @param float $qty * @return void */ public function minFix( - \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData, - \Magento\Quote\Model\Quote\Item\AbstractItem $item, + DiscountData $discountData, + QuoteAbstractItem $item, $qty ) { $itemPrice = $this->getItemPrice($item); @@ -176,13 +152,13 @@ public function minFix( /** * Process "delta" rounding * - * @param \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param DiscountData $discountData + * @param QuoteAbstractItem $item * @return $this */ public function deltaRoundingFix( - \Magento\SalesRule\Model\Rule\Action\Discount\Data $discountData, - \Magento\Quote\Model\Quote\Item\AbstractItem $item + DiscountData $discountData, + QuoteAbstractItem $item ) { $discountAmount = $discountData->getAmount(); $baseDiscountAmount = $discountData->getBaseAmount(); @@ -229,7 +205,7 @@ public function deltaRoundingFix( /** * Return item price * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param QuoteAbstractItem $item * @return float */ public function getItemPrice($item) @@ -242,7 +218,7 @@ public function getItemPrice($item) /** * Return item base price * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param QuoteAbstractItem $item * @return float */ public function getItemBasePrice($item) @@ -254,8 +230,8 @@ public function getItemBasePrice($item) /** * Return discount item qty * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item - * @param \Magento\SalesRule\Model\Rule $rule + * @param QuoteAbstractItem $item + * @param Rule $rule * @return int */ public function getItemQty($item, $rule) diff --git a/app/code/Magento/SalesRule/Model/Validator.php b/app/code/Magento/SalesRule/Model/Validator.php index abf34172c7296..51000cc8c7546 100644 --- a/app/code/Magento/SalesRule/Model/Validator.php +++ b/app/code/Magento/SalesRule/Model/Validator.php @@ -7,13 +7,24 @@ namespace Magento\SalesRule\Model; use Laminas\Validator\ValidatorInterface; +use Magento\Catalog\Helper\Data as CatalogHelper; use Magento\Framework\App\ObjectManager; +use Magento\Framework\Data\Collection\AbstractDb; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\Message\ManagerInterface; +use Magento\Framework\Model\AbstractModel; +use Magento\Framework\Model\Context; +use Magento\Framework\Model\ResourceModel\AbstractResource; +use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Framework\Registry; use Magento\Quote\Model\Quote; use Magento\Quote\Model\Quote\Address; use Magento\Quote\Model\Quote\Item\AbstractItem; use Magento\SalesRule\Helper\CartFixedDiscount; use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory; use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RulesCollection; +use Magento\SalesRule\Model\Validator\Pool; +use Zend_Db_Select_Exception; /** * SalesRule Validator Model @@ -28,7 +39,7 @@ * @method Validator setCustomerGroupId($id) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Validator extends \Magento\Framework\Model\AbstractModel +class Validator extends AbstractModel { /** * Rule source collection @@ -62,7 +73,7 @@ class Validator extends \Magento\Framework\Model\AbstractModel /** * Catalog data helper * - * @var \Magento\Catalog\Helper\Data|null + * @var CatalogHelper|null */ protected $_catalogData = null; @@ -72,30 +83,10 @@ class Validator extends \Magento\Framework\Model\AbstractModel protected $_collectionFactory; /** - * @var \Magento\SalesRule\Model\Utility + * @var Utility */ protected $validatorUtility; - /** - * @var \Magento\SalesRule\Model\RulesApplier - */ - protected $rulesApplier; - - /** - * @var \Magento\Framework\Pricing\PriceCurrencyInterface - */ - protected $priceCurrency; - - /** - * @var Validator\Pool - */ - protected $validators; - - /** - * @var \Magento\Framework\Message\ManagerInterface - */ - protected $messageManager; - /** * Counter is used for assigning temporary id to quote address * @@ -109,43 +100,39 @@ class Validator extends \Magento\Framework\Model\AbstractModel private $cartFixedDiscountHelper; /** - * @param \Magento\Framework\Model\Context $context - * @param \Magento\Framework\Registry $registry + * @param Context $context + * @param Registry $registry * @param CollectionFactory $collectionFactory - * @param \Magento\Catalog\Helper\Data $catalogData + * @param CatalogHelper $catalogData * @param Utility $utility * @param RulesApplier $rulesApplier - * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency + * @param PriceCurrencyInterface $priceCurrency * @param Validator\Pool $validators - * @param \Magento\Framework\Message\ManagerInterface $messageManager - * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource - * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection + * @param ManagerInterface $messageManager + * @param AbstractResource $resource + * @param AbstractDb $resourceCollection * @param array $data * @param CartFixedDiscount|null $cartFixedDiscount * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\Model\Context $context, - \Magento\Framework\Registry $registry, + Context $context, + Registry $registry, CollectionFactory $collectionFactory, - \Magento\Catalog\Helper\Data $catalogData, - \Magento\SalesRule\Model\Utility $utility, - \Magento\SalesRule\Model\RulesApplier $rulesApplier, - \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency, - \Magento\SalesRule\Model\Validator\Pool $validators, - \Magento\Framework\Message\ManagerInterface $messageManager, - \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, - \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, + CatalogHelper $catalogData, + Utility $utility, + protected readonly RulesApplier $rulesApplier, + protected readonly PriceCurrencyInterface $priceCurrency, + protected readonly Pool $validators, + protected readonly ManagerInterface $messageManager, + AbstractResource $resource = null, + AbstractDb $resourceCollection = null, array $data = [], ?CartFixedDiscount $cartFixedDiscount = null ) { $this->_collectionFactory = $collectionFactory; $this->_catalogData = $catalogData; $this->validatorUtility = $utility; - $this->rulesApplier = $rulesApplier; - $this->priceCurrency = $priceCurrency; - $this->validators = $validators; - $this->messageManager = $messageManager; $this->cartFixedDiscountHelper = $cartFixedDiscount ?: ObjectManager::getInstance()->get(CartFixedDiscount::class); parent::__construct($context, $registry, $resource, $resourceCollection, $data); @@ -175,7 +162,7 @@ public function init($websiteId, $customerGroupId, $couponCode) * @see we don't recommend this approach anymore * @param Address|null $address * @return RulesCollection - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ protected function _getRules(Address $address = null) { @@ -187,7 +174,7 @@ protected function _getRules(Address $address = null) * * @param Address|null $address * @return RulesCollection - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ public function getRules(Address $address = null) { @@ -251,7 +238,7 @@ public function setSkipActionsValidation($flag) * * @param AbstractItem $item * @return bool - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ public function canApplyRules(AbstractItem $item) { @@ -292,7 +279,7 @@ public function reset(Address $address) * @param AbstractItem $item * @param Rule $rule * @return $this - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ public function process(AbstractItem $item, Rule $rule) { @@ -320,7 +307,7 @@ public function process(AbstractItem $item, Rule $rule) * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.NPathComplexity) - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ public function processShippingAmount(Address $address) { @@ -438,7 +425,7 @@ public function processShippingAmount(Address $address) * @param Address $address * @return $this * @SuppressWarnings(PHPMD.CyclomaticComplexity) - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ public function initTotals($items, Address $address) { @@ -616,7 +603,7 @@ public function prepareDescription($address, $separator = ', ') * @param array $items * @param Address $address * @return array $items - * @throws \Zend_Db_Select_Exception + * @throws Zend_Db_Select_Exception */ public function sortItemsByPriority($items, Address $address = null) { @@ -643,12 +630,12 @@ public function sortItemsByPriority($items, Address $address = null) * * @param int $key * @return array - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException */ public function getRuleItemTotalsInfo($key) { if (empty($this->_rulesItemTotals[$key])) { - throw new \Magento\Framework\Exception\LocalizedException(__('Item totals are not set for the rule.')); + throw new LocalizedException(__('Item totals are not set for the rule.')); } return $this->_rulesItemTotals[$key]; diff --git a/app/code/Magento/SalesRule/Model/Validator/Pool.php b/app/code/Magento/SalesRule/Model/Validator/Pool.php index b1039ca59c4c3..1d700936b04aa 100644 --- a/app/code/Magento/SalesRule/Model/Validator/Pool.php +++ b/app/code/Magento/SalesRule/Model/Validator/Pool.php @@ -11,17 +11,12 @@ */ class Pool { - /** - * @var array - */ - protected $validators = []; - /** * @param array $validators */ - public function __construct(array $validators = []) - { - $this->validators = $validators; + public function __construct( + protected readonly array $validators = [] + ) { } /** diff --git a/app/code/Magento/SalesRule/Observer/AddSalesRuleNameToOrderObserver.php b/app/code/Magento/SalesRule/Observer/AddSalesRuleNameToOrderObserver.php index 268f3240078cd..b9c0688f71e2b 100644 --- a/app/code/Magento/SalesRule/Observer/AddSalesRuleNameToOrderObserver.php +++ b/app/code/Magento/SalesRule/Observer/AddSalesRuleNameToOrderObserver.php @@ -7,26 +7,29 @@ use Magento\Framework\Event\Observer as EventObserver; use Magento\Framework\Event\ObserverInterface; +use Magento\SalesRule\Model\Coupon; +use Magento\SalesRule\Model\Rule; +use Magento\SalesRule\Model\RuleFactory; class AddSalesRuleNameToOrderObserver implements ObserverInterface { /** - * @var \Magento\SalesRule\Model\RuleFactory + * @var RuleFactory */ protected $_ruleFactory; /** - * @var \Magento\SalesRule\Model\Coupon + * @var Coupon */ protected $_coupon; /** - * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory - * @param \Magento\SalesRule\Model\Coupon $coupon + * @param RuleFactory $ruleFactory + * @param Coupon $coupon */ public function __construct( - \Magento\SalesRule\Model\RuleFactory $ruleFactory, - \Magento\SalesRule\Model\Coupon $coupon + RuleFactory $ruleFactory, + Coupon $coupon ) { $this->_ruleFactory = $ruleFactory; $this->_coupon = $coupon; @@ -54,7 +57,7 @@ public function execute(EventObserver $observer) return $this; } - /** @var \Magento\SalesRule\Model\Rule $rule */ + /** @var Rule $rule */ $rule = $this->_ruleFactory->create()->load($ruleId); $order->setCouponRuleName($rule->getName()); diff --git a/app/code/Magento/SalesRule/Observer/AssignCouponDataAfterOrderCustomerAssignObserver.php b/app/code/Magento/SalesRule/Observer/AssignCouponDataAfterOrderCustomerAssignObserver.php index 1d416fbcf4f52..10a90a8388811 100644 --- a/app/code/Magento/SalesRule/Observer/AssignCouponDataAfterOrderCustomerAssignObserver.php +++ b/app/code/Magento/SalesRule/Observer/AssignCouponDataAfterOrderCustomerAssignObserver.php @@ -21,20 +21,14 @@ class AssignCouponDataAfterOrderCustomerAssignObserver implements ObserverInterf { private const EVENT_KEY_ORDER = 'order'; - /** - * @var UpdateCouponUsages - */ - private $updateCouponUsages; - /** * AssignCouponDataAfterOrderCustomerAssign constructor. * * @param UpdateCouponUsages $updateCouponUsages */ public function __construct( - UpdateCouponUsages $updateCouponUsages + private readonly UpdateCouponUsages $updateCouponUsages ) { - $this->updateCouponUsages = $updateCouponUsages; } /** diff --git a/app/code/Magento/SalesRule/Observer/CatalogAttributeDeleteAfterObserver.php b/app/code/Magento/SalesRule/Observer/CatalogAttributeDeleteAfterObserver.php index 2154ead5b9951..e4fea4467db52 100644 --- a/app/code/Magento/SalesRule/Observer/CatalogAttributeDeleteAfterObserver.php +++ b/app/code/Magento/SalesRule/Observer/CatalogAttributeDeleteAfterObserver.php @@ -10,18 +10,12 @@ class CatalogAttributeDeleteAfterObserver implements ObserverInterface { - /** - * @var \Magento\SalesRule\Observer\CheckSalesRulesAvailability - */ - protected $checkSalesRulesAvailability; - /** * @param CheckSalesRulesAvailability $checkSalesRulesAvailability */ public function __construct( - \Magento\SalesRule\Observer\CheckSalesRulesAvailability $checkSalesRulesAvailability + protected readonly CheckSalesRulesAvailability $checkSalesRulesAvailability ) { - $this->checkSalesRulesAvailability = $checkSalesRulesAvailability; } /** diff --git a/app/code/Magento/SalesRule/Observer/CatalogAttributeSaveAfterObserver.php b/app/code/Magento/SalesRule/Observer/CatalogAttributeSaveAfterObserver.php index ef0b97d40b40e..28039e01ef99e 100644 --- a/app/code/Magento/SalesRule/Observer/CatalogAttributeSaveAfterObserver.php +++ b/app/code/Magento/SalesRule/Observer/CatalogAttributeSaveAfterObserver.php @@ -10,18 +10,12 @@ class CatalogAttributeSaveAfterObserver implements ObserverInterface { - /** - * @var \Magento\SalesRule\Observer\CheckSalesRulesAvailability - */ - protected $checkSalesRulesAvailability; - /** * @param CheckSalesRulesAvailability $checkSalesRulesAvailability */ public function __construct( - \Magento\SalesRule\Observer\CheckSalesRulesAvailability $checkSalesRulesAvailability + protected readonly CheckSalesRulesAvailability $checkSalesRulesAvailability ) { - $this->checkSalesRulesAvailability = $checkSalesRulesAvailability; } /** diff --git a/app/code/Magento/SalesRule/Observer/CheckSalesRulesAvailability.php b/app/code/Magento/SalesRule/Observer/CheckSalesRulesAvailability.php index f2819a06fe1bf..e7f62d0c40c22 100644 --- a/app/code/Magento/SalesRule/Observer/CheckSalesRulesAvailability.php +++ b/app/code/Magento/SalesRule/Observer/CheckSalesRulesAvailability.php @@ -5,28 +5,29 @@ */ namespace Magento\SalesRule\Observer; +use Magento\Framework\Message\ManagerInterface; +use Magento\Rule\Model\Condition\Combine as ConditionCombine; +use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection; +use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory as RuleCollectionFactory; +use Magento\SalesRule\Model\Rule as ModelRule; +use Magento\SalesRule\Model\Rule\Condition\Product as ConditionProduct; + class CheckSalesRulesAvailability { /** - * @var \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory + * @var RuleCollectionFactory */ protected $_collectionFactory; /** - * @var \Magento\Framework\Message\ManagerInterface - */ - protected $messageManager; - - /** - * @param \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $collectionFactory - * @param \Magento\Framework\Message\ManagerInterface $messageManager + * @param RuleCollectionFactory $collectionFactory + * @param ManagerInterface $messageManager */ public function __construct( - \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $collectionFactory, - \Magento\Framework\Message\ManagerInterface $messageManager + RuleCollectionFactory $collectionFactory, + protected readonly ManagerInterface $messageManager ) { $this->_collectionFactory = $collectionFactory; - $this->messageManager = $messageManager; } /** @@ -38,14 +39,14 @@ public function __construct( */ public function checkSalesRulesAvailability($attributeCode) { - /* @var $collection \Magento\SalesRule\Model\ResourceModel\Rule\Collection */ + /* @var RuleCollection $collection */ $collection = $this->_collectionFactory->create()->addAttributeInConditionFilter($attributeCode); $disabledRulesCount = 0; foreach ($collection as $rule) { - /* @var $rule \Magento\SalesRule\Model\Rule */ + /** @var ModelRule $rule */ $rule->setIsActive(0); - /* @var $rule->getConditions() \Magento\SalesRule\Model\Rule\Condition\Combine */ + /** @var ConditionCombine $rule->getConditions() */ $this->_removeAttributeFromConditions($rule->getConditions(), $attributeCode); $this->_removeAttributeFromConditions($rule->getActions(), $attributeCode); $rule->save(); @@ -69,7 +70,7 @@ public function checkSalesRulesAvailability($attributeCode) /** * Remove catalog attribute condition by attribute code from rule conditions * - * @param \Magento\Rule\Model\Condition\Combine $combine + * @param ConditionCombine $combine * @param string $attributeCode * @return void */ @@ -77,10 +78,10 @@ protected function _removeAttributeFromConditions($combine, $attributeCode) { $conditions = $combine->getConditions(); foreach ($conditions as $conditionId => $condition) { - if ($condition instanceof \Magento\Rule\Model\Condition\Combine) { + if ($condition instanceof ConditionCombine) { $this->_removeAttributeFromConditions($condition, $attributeCode); } - if ($condition instanceof \Magento\SalesRule\Model\Rule\Condition\Product) { + if ($condition instanceof ConditionProduct) { if ($condition->getAttribute() == $attributeCode) { unset($conditions[$conditionId]); } diff --git a/app/code/Magento/SalesRule/Observer/CouponCodeValidation.php b/app/code/Magento/SalesRule/Observer/CouponCodeValidation.php index 02fd81078ea7c..8867d275acffc 100644 --- a/app/code/Magento/SalesRule/Observer/CouponCodeValidation.php +++ b/app/code/Magento/SalesRule/Observer/CouponCodeValidation.php @@ -22,34 +22,16 @@ */ class CouponCodeValidation implements ObserverInterface { - /** - * @var CartRepositoryInterface - */ - private $cartRepository; - - /** - * @var SearchCriteriaBuilder - */ - private $criteriaBuilder; - - /** - * @var CodeLimitManagerInterface - */ - private $codeLimitManager; - /** * @param CodeLimitManagerInterface $codeLimitManager * @param CartRepositoryInterface $cartRepository * @param SearchCriteriaBuilder $criteriaBuilder */ public function __construct( - CodeLimitManagerInterface $codeLimitManager, - CartRepositoryInterface $cartRepository, - SearchCriteriaBuilder $criteriaBuilder + private readonly CodeLimitManagerInterface $codeLimitManager, + private readonly CartRepositoryInterface $cartRepository, + private readonly SearchCriteriaBuilder $criteriaBuilder ) { - $this->codeLimitManager = $codeLimitManager; - $this->cartRepository = $cartRepository; - $this->criteriaBuilder = $criteriaBuilder; } /** diff --git a/app/code/Magento/SalesRule/Observer/CouponUsagesDecrement.php b/app/code/Magento/SalesRule/Observer/CouponUsagesDecrement.php index d0c7199405879..85822991409f1 100644 --- a/app/code/Magento/SalesRule/Observer/CouponUsagesDecrement.php +++ b/app/code/Magento/SalesRule/Observer/CouponUsagesDecrement.php @@ -17,17 +17,12 @@ */ class CouponUsagesDecrement implements ObserverInterface { - /** - * @var UpdateCouponUsages - */ - private $updateCouponUsages; - /** * @param UpdateCouponUsages $updateCouponUsages */ - public function __construct(UpdateCouponUsages $updateCouponUsages) - { - $this->updateCouponUsages = $updateCouponUsages; + public function __construct( + private readonly UpdateCouponUsages $updateCouponUsages + ) { } /** diff --git a/app/code/Magento/SalesRule/Observer/QuoteResetAppliedRulesObserver.php b/app/code/Magento/SalesRule/Observer/QuoteResetAppliedRulesObserver.php index d5ca055849d75..1eb7c17ae854b 100644 --- a/app/code/Magento/SalesRule/Observer/QuoteResetAppliedRulesObserver.php +++ b/app/code/Magento/SalesRule/Observer/QuoteResetAppliedRulesObserver.php @@ -16,17 +16,12 @@ */ class QuoteResetAppliedRulesObserver implements ObserverInterface { - /** - * @var QuoteResetAppliedRulesInterface - */ - private $resetAppliedRules; - /** * @param QuoteResetAppliedRulesInterface $resetAppliedRules */ - public function __construct(QuoteResetAppliedRulesInterface $resetAppliedRules) - { - $this->resetAppliedRules = $resetAppliedRules; + public function __construct( + private readonly QuoteResetAppliedRulesInterface $resetAppliedRules + ) { } /** diff --git a/app/code/Magento/SalesRule/Observer/RuleQuoteRecollectTotalsObserver.php b/app/code/Magento/SalesRule/Observer/RuleQuoteRecollectTotalsObserver.php index 990cbc5735381..bf9c98b4e182e 100644 --- a/app/code/Magento/SalesRule/Observer/RuleQuoteRecollectTotalsObserver.php +++ b/app/code/Magento/SalesRule/Observer/RuleQuoteRecollectTotalsObserver.php @@ -18,19 +18,14 @@ */ class RuleQuoteRecollectTotalsObserver implements ObserverInterface { - /** - * @var RuleQuoteRecollectTotalsInterface - */ - private $recollectTotals; - /** * Initializes dependencies * * @param RuleQuoteRecollectTotalsInterface $recollectTotals */ - public function __construct(RuleQuoteRecollectTotalsInterface $recollectTotals) - { - $this->recollectTotals = $recollectTotals; + public function __construct( + private readonly RuleQuoteRecollectTotalsInterface $recollectTotals + ) { } /** diff --git a/app/code/Magento/SalesRule/Plugin/CartTotalRepository.php b/app/code/Magento/SalesRule/Plugin/CartTotalRepository.php index 9249676f07d06..ed30e65ed3147 100644 --- a/app/code/Magento/SalesRule/Plugin/CartTotalRepository.php +++ b/app/code/Magento/SalesRule/Plugin/CartTotalRepository.php @@ -5,6 +5,12 @@ */ namespace Magento\SalesRule\Plugin; +use Magento\Quote\Api\Data\TotalsExtensionFactory; +use Magento\Quote\Api\Data\TotalsInterface; +use Magento\Quote\Model\Cart\CartTotalRepository as CartTotalRepositoryOrg; +use Magento\SalesRule\Api\RuleRepositoryInterface; +use Magento\SalesRule\Model\Coupon; +use Magento\SalesRule\Model\Data\RuleLabel; use Magento\Store\Model\StoreManagerInterface; /** @@ -13,55 +19,31 @@ */ class CartTotalRepository { - /** - * @var \Magento\Quote\Api\Data\TotalsExtensionFactory - */ - private $extensionFactory; - - /** - * @var \Magento\SalesRule\Api\RuleRepositoryInterface - */ - private $ruleRepository; - - /** - * @var \Magento\SalesRule\Model\Coupon - */ - private $coupon; - - /** - * @var StoreManagerInterface - */ - private $storeManager; - /** * CartTotalRepository constructor. - * @param \Magento\Quote\Api\Data\TotalsExtensionFactory $extensionFactory - * @param \Magento\SalesRule\Api\RuleRepositoryInterface $ruleRepository - * @param \Magento\SalesRule\Model\Coupon $coupon + * @param TotalsExtensionFactory $extensionFactory + * @param RuleRepositoryInterface $ruleRepository + * @param Coupon $coupon * @param StoreManagerInterface $storeManager */ public function __construct( - \Magento\Quote\Api\Data\TotalsExtensionFactory $extensionFactory, - \Magento\SalesRule\Api\RuleRepositoryInterface $ruleRepository, - \Magento\SalesRule\Model\Coupon $coupon, - StoreManagerInterface $storeManager + private readonly TotalsExtensionFactory $extensionFactory, + private readonly RuleRepositoryInterface $ruleRepository, + private readonly Coupon $coupon, + private readonly StoreManagerInterface $storeManager ) { - $this->extensionFactory = $extensionFactory; - $this->ruleRepository = $ruleRepository; - $this->coupon = $coupon; - $this->storeManager = $storeManager; } /** - * @param \Magento\Quote\Model\Cart\CartTotalRepository $subject - * @param \Magento\Quote\Api\Data\TotalsInterface $result - * @return \Magento\Quote\Api\Data\TotalsInterface + * @param CartTotalRepositoryOrg $subject + * @param TotalsInterface $result + * @return TotalsInterface * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterGet( - \Magento\Quote\Model\Cart\CartTotalRepository $subject, - \Magento\Quote\Api\Data\TotalsInterface $result + CartTotalRepositoryOrg $subject, + TotalsInterface $result ) { if ($result->getExtensionAttributes() === null) { $extensionAttributes = $this->extensionFactory->create(); @@ -87,7 +69,7 @@ public function afterGet( $storeLabel = $storeLabelFallback = null; - /* @var $label \Magento\SalesRule\Model\Data\RuleLabel */ + /* @var RuleLabel $label */ foreach ($rule->getStoreLabels() as $label) { if ($label->getStoreId() === 0) { $storeLabelFallback = $label->getStoreLabel(); diff --git a/app/code/Magento/SalesRule/Plugin/CouponUsagesDecrement.php b/app/code/Magento/SalesRule/Plugin/CouponUsagesDecrement.php index 3be801a288479..c488e07eeb2e4 100644 --- a/app/code/Magento/SalesRule/Plugin/CouponUsagesDecrement.php +++ b/app/code/Magento/SalesRule/Plugin/CouponUsagesDecrement.php @@ -16,26 +16,14 @@ */ class CouponUsagesDecrement { - /** - * @var UpdateCouponUsages - */ - private $updateCouponUsages; - - /** - * @var OrderRepository - */ - private $orderRepository; - /** * @param UpdateCouponUsages $updateCouponUsages * @param OrderRepository $orderRepository */ public function __construct( - UpdateCouponUsages $updateCouponUsages, - OrderRepository $orderRepository + private readonly UpdateCouponUsages $updateCouponUsages, + private readonly OrderRepository $orderRepository ) { - $this->updateCouponUsages = $updateCouponUsages; - $this->orderRepository = $orderRepository; } /** diff --git a/app/code/Magento/SalesRule/Plugin/CouponUsagesIncrement.php b/app/code/Magento/SalesRule/Plugin/CouponUsagesIncrement.php index a38cc35136cfc..4bb9b23feeac0 100644 --- a/app/code/Magento/SalesRule/Plugin/CouponUsagesIncrement.php +++ b/app/code/Magento/SalesRule/Plugin/CouponUsagesIncrement.php @@ -7,42 +7,39 @@ namespace Magento\SalesRule\Plugin; +use Closure; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Quote\Model\Quote; use Magento\Quote\Model\QuoteManagement; use Magento\Sales\Api\Data\OrderInterface; use Magento\SalesRule\Model\Coupon\Quote\UpdateCouponUsages; +use Throwable; /** * Increments number of coupon usages before placing order */ class CouponUsagesIncrement { - /** - * @var UpdateCouponUsages - */ - private $updateCouponUsages; - /** * @param UpdateCouponUsages $updateCouponUsages */ - public function __construct(UpdateCouponUsages $updateCouponUsages) - { - $this->updateCouponUsages = $updateCouponUsages; + public function __construct( + private readonly UpdateCouponUsages $updateCouponUsages + ) { } /** * Increments number of coupon usages before placing order * * @param QuoteManagement $subject - * @param \Closure $proceed + * @param Closure $proceed * @param Quote $quote * @param array $orderData * @return OrderInterface|null * @throws NoSuchEntityException * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function aroundSubmit(QuoteManagement $subject, \Closure $proceed, Quote $quote, $orderData = []) + public function aroundSubmit(QuoteManagement $subject, Closure $proceed, Quote $quote, $orderData = []) { /* if coupon code has been canceled then need to notify the customer */ if (!$quote->getCouponCode() && $quote->dataHasChangedFor('coupon_code')) { @@ -52,7 +49,7 @@ public function aroundSubmit(QuoteManagement $subject, \Closure $proceed, Quote $this->updateCouponUsages->execute($quote, true); try { return $proceed($quote, $orderData); - } catch (\Throwable $e) { + } catch (Throwable $e) { $this->updateCouponUsages->execute($quote, false); throw $e; } diff --git a/app/code/Magento/SalesRule/Setup/Patch/Data/ConvertSerializedDataToJson.php b/app/code/Magento/SalesRule/Setup/Patch/Data/ConvertSerializedDataToJson.php index e863f2af3354d..b6da005c57fa1 100644 --- a/app/code/Magento/SalesRule/Setup/Patch/Data/ConvertSerializedDataToJson.php +++ b/app/code/Magento/SalesRule/Setup/Patch/Data/ConvertSerializedDataToJson.php @@ -6,8 +6,14 @@ namespace Magento\SalesRule\Setup\Patch\Data; +use Magento\Framework\DB\AggregatedFieldDataConverter; +use Magento\Framework\DB\DataConverter\SerializedToJson; +use Magento\Framework\DB\FieldToConvert; +use Magento\Framework\EntityManager\MetadataPool; +use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; +use Magento\SalesRule\Api\Data\RuleInterface; /** * Class ConvertSerializedDataToJson @@ -17,33 +23,15 @@ class ConvertSerializedDataToJson implements DataPatchInterface, PatchVersionInterface { /** - * @param \Magento\Framework\EntityManager\MetadataPool $metadataPool - */ - private $metadataPool; - - /** - * @param \Magento\Framework\DB\AggregatedFieldDataConverter $aggregatedFieldConverter - */ - private $aggregatedFieldConverter; - - /** - * @var \Magento\Framework\Setup\ModuleDataSetupInterface - */ - private $moduleDataSetup; - - /** - * @param \Magento\Framework\EntityManager\MetadataPool $metadataPool - * @param \Magento\Framework\DB\AggregatedFieldDataConverter $aggregatedFieldConverter - * @param \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup + * @param MetadataPool $metadataPool + * @param AggregatedFieldDataConverter $aggregatedFieldConverter + * @param ModuleDataSetupInterface $moduleDataSetup */ public function __construct( - \Magento\Framework\EntityManager\MetadataPool $metadataPool, - \Magento\Framework\DB\AggregatedFieldDataConverter $aggregatedFieldConverter, - \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup + private readonly MetadataPool $metadataPool, + private readonly AggregatedFieldDataConverter $aggregatedFieldConverter, + private readonly ModuleDataSetupInterface $moduleDataSetup ) { - $this->metadataPool = $metadataPool; - $this->aggregatedFieldConverter = $aggregatedFieldConverter; - $this->moduleDataSetup = $moduleDataSetup; } /** @@ -91,17 +79,17 @@ public function getAliases() */ private function convertSerializedDataToJson() { - $metadata = $this->metadataPool->getMetadata(\Magento\SalesRule\Api\Data\RuleInterface::class); + $metadata = $this->metadataPool->getMetadata(RuleInterface::class); $this->aggregatedFieldConverter->convert( [ - new \Magento\Framework\DB\FieldToConvert( - \Magento\Framework\DB\DataConverter\SerializedToJson::class, + new FieldToConvert( + SerializedToJson::class, $this->moduleDataSetup->getTable('salesrule'), $metadata->getLinkField(), 'conditions_serialized' ), - new \Magento\Framework\DB\FieldToConvert( - \Magento\Framework\DB\DataConverter\SerializedToJson::class, + new FieldToConvert( + SerializedToJson::class, $this->moduleDataSetup->getTable('salesrule'), $metadata->getLinkField(), 'actions_serialized' diff --git a/app/code/Magento/SalesRule/Setup/Patch/Data/FillSalesRuleProductAttributeTable.php b/app/code/Magento/SalesRule/Setup/Patch/Data/FillSalesRuleProductAttributeTable.php index 22cf4fe6b1075..0070bbaf73e13 100644 --- a/app/code/Magento/SalesRule/Setup/Patch/Data/FillSalesRuleProductAttributeTable.php +++ b/app/code/Magento/SalesRule/Setup/Patch/Data/FillSalesRuleProductAttributeTable.php @@ -6,9 +6,16 @@ namespace Magento\SalesRule\Setup\Patch\Data; +use Magento\Backend\App\Area\FrontNameResolver; use Magento\Framework\App\State; +use Magento\Framework\Serialize\SerializerInterface; +use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; +use Magento\SalesRule\Model\ResourceModel\Rule as ResourceRule; +use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection; +use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory as RuleCollectionFactory; +use Magento\SalesRule\Model\Rule as ModelRule; /** * Class FillSalesRuleProductAttributeTable @@ -17,51 +24,21 @@ */ class FillSalesRuleProductAttributeTable implements DataPatchInterface, PatchVersionInterface { - /** - * @param \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $ruleColletionFactory - */ - private $ruleColletionFactory; - - /** - * @param \Magento\Framework\Serialize\SerializerInterface $serializer - */ - private $serializer; - - /** - * @param \Magento\SalesRule\Model\ResourceModel\Rule $resourceModelRule - */ - private $resourceModelRule; - - /** - * @var \Magento\Framework\Setup\ModuleDataSetupInterface - */ - private $moduleDataSetup; - - /** - * @var State - */ - private $appState; - /** * FillSalesRuleProductAttributeTable constructor. - * @param \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $ruleColletionFactory - * @param \Magento\Framework\Serialize\SerializerInterface $serializer - * @param \Magento\SalesRule\Model\ResourceModel\Rule $resourceModelRule - * @param \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup + * @param RuleCollectionFactory $ruleColletionFactory + * @param SerializerInterface $serializer + * @param ResourceRule $resourceModelRule + * @param ModuleDataSetupInterface $moduleDataSetup * @param State $appState */ public function __construct( - \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $ruleColletionFactory, - \Magento\Framework\Serialize\SerializerInterface $serializer, - \Magento\SalesRule\Model\ResourceModel\Rule $resourceModelRule, - \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup, - State $appState + private readonly RuleCollectionFactory $ruleColletionFactory, + private readonly SerializerInterface $serializer, + private readonly ResourceRule $resourceModelRule, + private readonly ModuleDataSetupInterface $moduleDataSetup, + private readonly State $appState ) { - $this->ruleColletionFactory = $ruleColletionFactory; - $this->serializer = $serializer; - $this->resourceModelRule = $resourceModelRule; - $this->moduleDataSetup = $moduleDataSetup; - $this->appState = $appState; } /** @@ -71,7 +48,7 @@ public function apply() { $this->moduleDataSetup->getConnection()->startSetup(); $this->appState->emulateAreaCode( - \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE, + FrontNameResolver::AREA_CODE, [$this, 'fillSalesRuleProductAttributeTable'] ); $this->fillSalesRuleProductAttributeTable(); @@ -83,9 +60,9 @@ public function apply() */ public function fillSalesRuleProductAttributeTable() { - /** @var \Magento\SalesRule\Model\ResourceModel\Rule\Collection $ruleCollection */ + /** @var RuleCollection $ruleCollection */ $ruleCollection = $this->ruleColletionFactory->create(); - /** @var \Magento\SalesRule\Model\Rule $rule */ + /** @var ModelRule $rule */ foreach ($ruleCollection as $rule) { // Save product attributes used in rule $conditions = $rule->getConditions()->asArray(); diff --git a/app/code/Magento/SalesRule/Setup/Patch/Data/PrepareRuleModelSerializedData.php b/app/code/Magento/SalesRule/Setup/Patch/Data/PrepareRuleModelSerializedData.php index cad83b6f5d1dd..a50acae1fdc36 100644 --- a/app/code/Magento/SalesRule/Setup/Patch/Data/PrepareRuleModelSerializedData.php +++ b/app/code/Magento/SalesRule/Setup/Patch/Data/PrepareRuleModelSerializedData.php @@ -6,6 +6,7 @@ namespace Magento\SalesRule\Setup\Patch\Data; +use Magento\Framework\Module\Setup\Migration; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; @@ -17,19 +18,13 @@ */ class PrepareRuleModelSerializedData implements DataPatchInterface, PatchVersionInterface { - /** - * @var ModuleDataSetupInterface - */ - private $moduleDataSetup; - /** * PatchInitial constructor. * @param ModuleDataSetupInterface $moduleDataSetup */ public function __construct( - ModuleDataSetupInterface $moduleDataSetup + private readonly ModuleDataSetupInterface $moduleDataSetup ) { - $this->moduleDataSetup = $moduleDataSetup; } /** @@ -43,15 +38,15 @@ public function apply() $installer->appendClassAliasReplace( 'salesrule', 'conditions_serialized', - \Magento\Framework\Module\Setup\Migration::ENTITY_TYPE_MODEL, - \Magento\Framework\Module\Setup\Migration::FIELD_CONTENT_TYPE_SERIALIZED, + Migration::ENTITY_TYPE_MODEL, + Migration::FIELD_CONTENT_TYPE_SERIALIZED, ['rule_id'] ); $installer->appendClassAliasReplace( 'salesrule', 'actions_serialized', - \Magento\Framework\Module\Setup\Migration::ENTITY_TYPE_MODEL, - \Magento\Framework\Module\Setup\Migration::FIELD_CONTENT_TYPE_SERIALIZED, + Migration::ENTITY_TYPE_MODEL, + Migration::FIELD_CONTENT_TYPE_SERIALIZED, ['rule_id'] ); $installer->doUpdateClassAliases(); diff --git a/app/code/Magento/SalesRule/registration.php b/app/code/Magento/SalesRule/registration.php index 53305ca8287f7..c5fef34b88e09 100644 --- a/app/code/Magento/SalesRule/registration.php +++ b/app/code/Magento/SalesRule/registration.php @@ -6,4 +6,8 @@ use Magento\Framework\Component\ComponentRegistrar; -ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_SalesRule', __DIR__); +ComponentRegistrar::register( + ComponentRegistrar::MODULE, + 'Magento_SalesRule', + __DIR__ +);