diff --git a/Packetery/Checkout/Block/System/Config/Form/ApiKeyValidate.php b/Packetery/Checkout/Block/System/Config/Form/ApiKeyValidate.php index 6ed201ac..3daaa1e2 100755 --- a/Packetery/Checkout/Block/System/Config/Form/ApiKeyValidate.php +++ b/Packetery/Checkout/Block/System/Config/Form/ApiKeyValidate.php @@ -9,7 +9,7 @@ class ApiKeyValidate extends \Magento\Framework\App\Config\Value private const API_KEY_LENGTH = 16; /** - * @return void + * @return self * @throws \Magento\Framework\Exception\ValidatorException * @throws \Magento\Framework\Exception\FileSystemException */ @@ -23,6 +23,6 @@ public function beforeSave() throw new \Magento\Framework\Exception\ValidatorException($message); } - parent::beforeSave(); + return parent::beforeSave(); } } diff --git a/Packetery/Checkout/Block/System/Config/Form/ApiPasswordValidate.php b/Packetery/Checkout/Block/System/Config/Form/ApiPasswordValidate.php index d6efba40..dc6f5816 100755 --- a/Packetery/Checkout/Block/System/Config/Form/ApiPasswordValidate.php +++ b/Packetery/Checkout/Block/System/Config/Form/ApiPasswordValidate.php @@ -7,7 +7,7 @@ class ApiPasswordValidate extends \Magento\Framework\App\Config\Value private const API_PASSWORD_LENGTH = 32; /** - * @return void + * @return self * @throws \Magento\Framework\Exception\ValidatorException */ public function beforeSave() @@ -21,6 +21,6 @@ public function beforeSave() throw new \Magento\Framework\Exception\ValidatorException($message); } - parent::beforeSave(); + return parent::beforeSave(); } } diff --git a/Packetery/Checkout/Controller/Adminhtml/Order/Detail.php b/Packetery/Checkout/Controller/Adminhtml/Order/Detail.php index e3177036..d3322263 100644 --- a/Packetery/Checkout/Controller/Adminhtml/Order/Detail.php +++ b/Packetery/Checkout/Controller/Adminhtml/Order/Detail.php @@ -66,6 +66,7 @@ public function execute(): AbstractResult return $this->resultRedirectFactory->create()->setPath('*/*/index'); } + /** @var \Magento\Framework\View\Element\AbstractBlock $addressDetailBlock */ $addressDetailBlock = $resultPage->getLayout()->getBlock('packetery_order_address_detail'); $addressDetailBlock->setData('order', $order); $addressDetailBlock->setData('magentoOrder', $magentoOrder); diff --git a/Packetery/Checkout/Model/Carrier/AbstractCarrier.php b/Packetery/Checkout/Model/Carrier/AbstractCarrier.php index 45dc5229..d29163b2 100644 --- a/Packetery/Checkout/Model/Carrier/AbstractCarrier.php +++ b/Packetery/Checkout/Model/Carrier/AbstractCarrier.php @@ -39,7 +39,15 @@ public function __construct( } /** - * {@inheritdoc} + * @return mixed + */ + public function getStore() + { + return parent::getStore(); + } + + /** + * @return bool|\Magento\Framework\DataObject|\Magento\Shipping\Model\Rate\Result|null */ public function collectRates(RateRequest $request) { diff --git a/Packetery/Checkout/Model/Carrier/Facade.php b/Packetery/Checkout/Model/Carrier/Facade.php index 526d5165..9423d1a0 100644 --- a/Packetery/Checkout/Model/Carrier/Facade.php +++ b/Packetery/Checkout/Model/Carrier/Facade.php @@ -100,7 +100,7 @@ public function createHybridCarrierCached(array &$cache, string $carrierCode, ?i /** * @param \Packetery\Checkout\Model\Carrier\AbstractDynamicCarrier[] $carriers - * @return string[] + * @return array{value: string, label: \Magento\Framework\Phrase}[] */ public function getVendorCodesOptions(array $carriers): array { @@ -190,12 +190,9 @@ private function getDynamicCarrier(AbstractCarrier $carrier, ?int $carrierId): ? return $carrier->getPacketeryBrain()->getDynamicCarrierById($carrierId); } - /** - * @param string $carrierCode - * @return \Packetery\Checkout\Model\Carrier\AbstractCarrier - */ public function getMagentoCarrier(string $carrierCode): AbstractCarrier { + // @phpstan-ignore-next-line return $this->carrierFactory->get($carrierCode); } diff --git a/Packetery/Checkout/Model/Carrier/Imp/Packetery/Carrier.php b/Packetery/Checkout/Model/Carrier/Imp/Packetery/Carrier.php index 38292e98..9e7d13bb 100644 --- a/Packetery/Checkout/Model/Carrier/Imp/Packetery/Carrier.php +++ b/Packetery/Checkout/Model/Carrier/Imp/Packetery/Carrier.php @@ -14,6 +14,9 @@ class Carrier extends \Packetery\Checkout\Model\Carrier\AbstractCarrier /** @var \Packetery\Checkout\Model\Carrier\Imp\Packetery\Brain */ protected $packeteryBrain; + /** @var \Packetery\Checkout\Model\Carrier\Imp\Packetery\Config */ + protected $packeteryConfig; + /** * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory @@ -31,18 +34,12 @@ public function __construct( parent::__construct($scopeConfig, $rateErrorFactory, $logger, $brain, $data); } - /** - * @return \Packetery\Checkout\Model\Carrier\Imp\Packetery\Brain - */ - public function getPacketeryBrain(): \Packetery\Checkout\Model\Carrier\AbstractBrain + public function getPacketeryBrain(): \Packetery\Checkout\Model\Carrier\Imp\Packetery\Brain { return $this->packeteryBrain; } - /** - * @return \Packetery\Checkout\Model\Carrier\Imp\Packetery\Config - */ - public function getPacketeryConfig(): AbstractConfig + public function getPacketeryConfig(): \Packetery\Checkout\Model\Carrier\Imp\Packetery\Config { return $this->packeteryConfig; } diff --git a/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Brain.php b/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Brain.php index 9e2116ce..b5dbd24f 100644 --- a/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Brain.php +++ b/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Brain.php @@ -78,7 +78,7 @@ public function isAssignableToPricingRule(): bool /** * @param int|null $dynamicCarrierId - * @return \Packetery\Checkout\Model\Carrier|null + * @return \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\DynamicCarrier|null */ public function getDynamicCarrierById(?int $dynamicCarrierId): ?AbstractDynamicCarrier { diff --git a/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Carrier.php b/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Carrier.php index 84d1c191..041c7dc2 100644 --- a/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Carrier.php +++ b/Packetery/Checkout/Model/Carrier/Imp/PacketeryPacketaDynamic/Carrier.php @@ -14,6 +14,9 @@ class Carrier extends \Packetery\Checkout\Model\Carrier\AbstractCarrier /** @var \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\Brain */ protected $packeteryBrain; + /** @var \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\Config */ + protected $packeteryConfig; + /** * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory @@ -31,20 +34,14 @@ public function __construct( parent::__construct($scopeConfig, $rateErrorFactory, $logger, $brain, $data); } - /** - * @return \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\Brain - */ - public function getPacketeryBrain(): \Packetery\Checkout\Model\Carrier\AbstractBrain + public function getPacketeryBrain(): \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\Brain { - return parent::getPacketeryBrain(); + return $this->packeteryBrain; } - /** - * @return \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\Config - */ - public function getPacketeryConfig(): \Packetery\Checkout\Model\Carrier\Config\AbstractConfig + public function getPacketeryConfig(): \Packetery\Checkout\Model\Carrier\Imp\PacketeryPacketaDynamic\Config { - return parent::getPacketeryConfig(); + return $this->packeteryConfig; } /** diff --git a/Packetery/Checkout/Model/Carrier/ShippingRateCode.php b/Packetery/Checkout/Model/Carrier/ShippingRateCode.php index 91193b21..7affdf8c 100644 --- a/Packetery/Checkout/Model/Carrier/ShippingRateCode.php +++ b/Packetery/Checkout/Model/Carrier/ShippingRateCode.php @@ -39,7 +39,7 @@ public static function isPacketery(string $code): bool /** * @param string $rateCode - * @return static + * @return self */ public static function fromString(string $rateCode): self { diff --git a/Packetery/Checkout/Model/HybridCarrier.php b/Packetery/Checkout/Model/HybridCarrier.php index 5f22c2a2..6a1a4229 100644 --- a/Packetery/Checkout/Model/HybridCarrier.php +++ b/Packetery/Checkout/Model/HybridCarrier.php @@ -39,7 +39,7 @@ public static function fromAbstractDynamic(\Packetery\Checkout\Model\Carrier\Abs * @param string $method * @param string $country * @param array $vendorCodeOptions - * @return static + * @return self */ public static function fromAbstract(\Packetery\Checkout\Model\Carrier\AbstractCarrier $carrier, string $method, string $country, array $vendorCodeOptions): self { diff --git a/Packetery/Checkout/Model/ResourceModel/Carrier/Collection.php b/Packetery/Checkout/Model/ResourceModel/Carrier/Collection.php index cf67d3ee..3b46c565 100644 --- a/Packetery/Checkout/Model/ResourceModel/Carrier/Collection.php +++ b/Packetery/Checkout/Model/ResourceModel/Carrier/Collection.php @@ -25,6 +25,7 @@ protected function _construct() */ public function getItems() { + // @phpstan-ignore-next-line return parent::getItems(); } diff --git a/Packetery/Checkout/Model/ResourceModel/Order/Collection.php b/Packetery/Checkout/Model/ResourceModel/Order/Collection.php index 8b5f82ad..6900e12c 100755 --- a/Packetery/Checkout/Model/ResourceModel/Order/Collection.php +++ b/Packetery/Checkout/Model/ResourceModel/Order/Collection.php @@ -18,6 +18,15 @@ protected function _construct() $this->_init('Packetery\Checkout\Model\Order', 'Packetery\Checkout\Model\ResourceModel\Order'); } + /** + * @return \Packetery\Checkout\Model\Order[] + */ + public function getItems() + { + // @phpstan-ignore-next-line + return parent::getItems(); + } + /** * @return string */ diff --git a/Packetery/Checkout/Model/ResourceModel/Pricingrule/Collection.php b/Packetery/Checkout/Model/ResourceModel/Pricingrule/Collection.php index a4ead75b..9ab4cd0a 100644 --- a/Packetery/Checkout/Model/ResourceModel/Pricingrule/Collection.php +++ b/Packetery/Checkout/Model/ResourceModel/Pricingrule/Collection.php @@ -28,6 +28,7 @@ protected function _construct() */ public function getItems() { + // @phpstan-ignore-next-line return parent::getItems(); } @@ -37,6 +38,7 @@ public function getItems() public function getFirstRecord(): ?\Packetery\Checkout\Model\Pricingrule { $this->load(); + /** @var \Packetery\Checkout\Model\Pricingrule[] $items */ $items = $this->_items; return array_shift($items); diff --git a/Packetery/Checkout/Model/ResourceModel/PricingruleRepository.php b/Packetery/Checkout/Model/ResourceModel/PricingruleRepository.php index 5ed256f8..ba563d3f 100644 --- a/Packetery/Checkout/Model/ResourceModel/PricingruleRepository.php +++ b/Packetery/Checkout/Model/ResourceModel/PricingruleRepository.php @@ -203,9 +203,11 @@ public function savePricingRule(array $postData, array $weightRules): \Packetery */ public function setPricingRuleEnabled(int $id, bool $enabled): void { - $rule = $this->pricingRuleCollectionFactory->create()->getItemById($id); - $rule->setData('enabled', $enabled); - $rule->save(); + /** @var \Packetery\Checkout\Model\ResourceModel\Pricingrule\Collection $collection */ + $collection = $this->pricingRuleCollectionFactory->create(); + $collection->addFilter('id', $id); + $collection->setDataToAll('enabled', $enabled); + $collection->save(); } /** diff --git a/Packetery/Checkout/Model/ResourceModel/Weightrule/Collection.php b/Packetery/Checkout/Model/ResourceModel/Weightrule/Collection.php index eb3d7692..c475af5d 100644 --- a/Packetery/Checkout/Model/ResourceModel/Weightrule/Collection.php +++ b/Packetery/Checkout/Model/ResourceModel/Weightrule/Collection.php @@ -28,6 +28,7 @@ protected function _construct() */ public function getItems() { + // @phpstan-ignore-next-line return parent::getItems(); } } diff --git a/Packetery/Checkout/Model/Weight/Calculator.php b/Packetery/Checkout/Model/Weight/Calculator.php index 9340d2bb..f6f963d3 100644 --- a/Packetery/Checkout/Model/Weight/Calculator.php +++ b/Packetery/Checkout/Model/Weight/Calculator.php @@ -32,7 +32,6 @@ public function getItemsWeight(array $allVisibleItems): float foreach ($allVisibleItems as $item) { if ($item->getProductType() === 'configurable') { - /** @var \Magento\Catalog\Model\Product $configurableProduct */ $configurableProduct = $item->getProduct(); if ($configurableProduct->isVirtual()) { $configurableWeight = 0.0; @@ -40,10 +39,8 @@ public function getItemsWeight(array $allVisibleItems): float $configurableWeight = $configurableProduct->getWeight(); } - /** @var Item[] $children */ $children = ($item->getChildren() ?: []); // contains only ordered items foreach ($children as $child) { - /** @var \Magento\Catalog\Model\Product $childProduct */ $childProduct = $child->getProduct(); if ($childProduct->isVirtual()) { $productWeights[$childProduct->getId()] = 0.0; @@ -62,7 +59,6 @@ public function getItemsWeight(array $allVisibleItems): float } foreach ($allVisibleItems as $item) { - /** @var \Magento\Catalog\Model\Product $product */ $product = $item->getProduct(); if ($item->getProductType() === 'simple' && !array_key_exists($product->getId(), $productWeights)) { if ($product->isVirtual()) { diff --git a/Packetery/Checkout/Model/Weight/Item.php b/Packetery/Checkout/Model/Weight/Item.php index f51491fd..f781e4c6 100644 --- a/Packetery/Checkout/Model/Weight/Item.php +++ b/Packetery/Checkout/Model/Weight/Item.php @@ -29,7 +29,7 @@ public static function transformItems(array $items): array /** * @param \Magento\Quote\Model\Quote\Item $item - * @return static + * @return self */ public static function fromQuoteItem(\Magento\Quote\Model\Quote\Item $item): self { @@ -49,7 +49,7 @@ public static function fromQuoteItem(\Magento\Quote\Model\Quote\Item $item): sel /** * @param \Magento\Sales\Model\Order\Item $item - * @return static + * @return self */ public static function fromOrderItem(\Magento\Sales\Model\Order\Item $item): self { @@ -66,4 +66,36 @@ public static function fromOrderItem(\Magento\Sales\Model\Order\Item $item): sel return $instance; } + + /** + * @return string + */ + public function getProductType() + { + return parent::getProductType(); + } + + /** + * @return self[] + */ + public function getChildren() + { + return $this->getData('children'); + } + + /** + * @return int + */ + public function getQty() + { + return $this->getData('qty'); + } + + /** + * @return \Magento\Catalog\Model\Product + */ + public function getProduct() + { + return $this->getData('product'); + } } diff --git a/Packetery/Checkout/Observer/Sales/AddressPlaceAfter.php b/Packetery/Checkout/Observer/Sales/AddressPlaceAfter.php index 4dc9324f..8b75a640 100644 --- a/Packetery/Checkout/Observer/Sales/AddressPlaceAfter.php +++ b/Packetery/Checkout/Observer/Sales/AddressPlaceAfter.php @@ -29,6 +29,7 @@ public function execute( \Magento\Framework\Event\Observer $observer ) { $orderId = $observer->getData('order_id'); + /** @var \Magento\Sales\Model\Order $order */ $order = $this->orderRepository->get($orderId); $orderNumber = $order->getIncrementId(); $shippingAddress = $order->getShippingAddress(); diff --git a/Packetery/Checkout/Observer/Sales/EmailOrderTemplateVarsBefore.php b/Packetery/Checkout/Observer/Sales/EmailOrderTemplateVarsBefore.php index b538b954..1066072e 100644 --- a/Packetery/Checkout/Observer/Sales/EmailOrderTemplateVarsBefore.php +++ b/Packetery/Checkout/Observer/Sales/EmailOrderTemplateVarsBefore.php @@ -37,8 +37,8 @@ public function execute(\Magento\Framework\Event\Observer $observer) $order = $transport['order']; $collection = $this->orderCollectionFactory->create(); $collection->addFilter('order_number', $order->getData('increment_id')); - /** @var \Packetery\Checkout\Model\Order|null $packeteryOrder */ $items = ( $collection->getItems() ?: [] ); + /** @var \Packetery\Checkout\Model\Order|null $packeteryOrder */ $packeteryOrder = array_shift($items); $transport['packetery_is_pickup_point'] = false; diff --git a/Packetery/Checkout/Ui/Component/CarrierCountry/Listing/SearchResult.php b/Packetery/Checkout/Ui/Component/CarrierCountry/Listing/SearchResult.php index 4b2ffcc4..6d166e97 100644 --- a/Packetery/Checkout/Ui/Component/CarrierCountry/Listing/SearchResult.php +++ b/Packetery/Checkout/Ui/Component/CarrierCountry/Listing/SearchResult.php @@ -79,7 +79,5 @@ protected function _initSelect() ); $this->addFilterToMap('availableName', 'available'); - - return $this; } } diff --git a/Packetery/Checkout/Ui/Component/Order/Listing/SearchResult.php b/Packetery/Checkout/Ui/Component/Order/Listing/SearchResult.php index 0c90d8b0..e5ba3928 100644 --- a/Packetery/Checkout/Ui/Component/Order/Listing/SearchResult.php +++ b/Packetery/Checkout/Ui/Component/Order/Listing/SearchResult.php @@ -79,7 +79,5 @@ protected function _initSelect() 'main_table' => new Expression('(' . $subQuery->assemble() . ')'), ] ); - - return $this; } } diff --git a/Packetery/Checkout/view/adminhtml/templates/order-address-detail.phtml b/Packetery/Checkout/view/adminhtml/templates/order-address-detail.phtml index b03a840d..7198fedc 100644 --- a/Packetery/Checkout/view/adminhtml/templates/order-address-detail.phtml +++ b/Packetery/Checkout/view/adminhtml/templates/order-address-detail.phtml @@ -1,5 +1,5 @@ getData('order'); $packeteryMagentoOrder = $block->getData('magentoOrder'); diff --git a/phpstan-config.neon b/phpstan-config.neon index 25b4846c..f694b285 100644 --- a/phpstan-config.neon +++ b/phpstan-config.neon @@ -1,9 +1,12 @@ parameters: bootstrapFiles: - phpstan-autoload.php - level: 1 + level: 3 fileExtensions: - php - phtml paths: - ./Packetery/Checkout + ignoreErrors: + - '#Call to an undefined method Magento\\(.*)+\(\)\.#' # It is typical for Magento related code to use PHP magic. + - '#Call to an undefined static method Magento\\(.*)+\(\)\.#'