Smile-SA/elasticsuite

View on GitHub
src/module-elasticsuite-thesaurus/Model/ResourceModel/Thesaurus/Collection.php

Summary

Maintainability
D
2 days
Test Coverage

Showing 14 of 14 total issues

Function loadStores has a Cognitive Complexity of 27 (exceeds 5 allowed). Consider refactoring.
Open

private function loadStores()
{
$itemIds = array_keys($this->_items);
 
if (count($itemIds)) {

Collection has 13 functions (exceeds 10 allowed). Consider refactoring.
Open

class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
/**
* Store for filter
*

    Method __construct has 8 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory,
    \Psr\Log\LoggerInterface $logger,
    \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
    \Magento\Framework\Event\ManagerInterface $eventManager,
    \Magento\Store\Model\StoreManagerInterface $storeManager,

      Doc-block of $entityFactory in __construct contains phpdoc param type \Magento\Framework\Data\Collection\EntityFactory which is incompatible with the param type \Magento\Framework\Data\Collection\EntityFactoryInterface declared in the signature
      Open

      * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory Entity Factory

      Doc-block of $connection in __construct is phpdoc param type \Magento\Framework\DB\Adapter\AdapterInterface which is not a permitted replacement of the nullable param type ?\Magento\Framework\DB\Adapter\AdapterInterface declared in the signature ('?T' should be documented as 'T|null' or '?T')
      Open

      * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection Database Connection

      Doc-block of $resource in __construct is phpdoc param type \Magento\Framework\Model\ResourceModel\Db\AbstractDb which is not a permitted replacement of the nullable param type ?\Magento\Framework\Model\ResourceModel\Db\AbstractDb declared in the signature ('?T' should be documented as 'T|null' or '?T')
      Open

      * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource Abstract Resource

      Class \Smile\ElasticsuiteThesaurus\Model\ResourceModel\Thesaurus\Collection was passed to foreach, but it does not extend Traversable. This may be intentional, because some of that class's declared properties are accessible from this context. (This check excludes dynamic properties)
      Open

      foreach ($this as $item) {

      Suspicious array access to ?mixed
      Open

      $labelsByThesaurusId[$currentTerm['thesaurus_id']][] = $label;

      Suspicious array access to ?mixed
      Open

      $labelsByThesaurusId[$currentTerm['thesaurus_id']][] = $label;

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

      private function addTermExportData($termData)
      {
      $labelsByThesaurusId = [];
       
      foreach ($termData as $currentTerm) {
      src/module-elasticsuite-thesaurus/Model/ResourceModel/Thesaurus/Collection.php on lines 333..352

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

      private function addTermData($termData)
      {
      $labelsByThesaurusId = [];
       
      foreach ($termData as $currentTerm) {
      src/module-elasticsuite-thesaurus/Model/ResourceModel/Thesaurus/Collection.php on lines 361..380

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

      $this->getSelect()->join(
      ['store_table' => $this->getTable(ThesaurusInterface::STORE_TABLE_NAME)],
      'main_table.' . ThesaurusInterface::THESAURUS_ID . ' = store_table.' . ThesaurusInterface::THESAURUS_ID,
      []
      )->group(
      src/module-elasticsuite-thesaurus/Model/ResourceModel/Thesaurus/Collection.php on lines 142..148

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

      $this->getSelect()
      ->join(
      ['store_table' => $this->getTable(ThesaurusInterface::STORE_TABLE_NAME)],
      'main_table.' . ThesaurusInterface::THESAURUS_ID . ' = store_table.' . ThesaurusInterface::THESAURUS_ID,
      []
      src/module-elasticsuite-thesaurus/Model/ResourceModel/Thesaurus/Collection.php on lines 162..168

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

      public function setStoreId($store)
      {
      if ($store instanceof Store) {
      $store = $store->getId();
      }
      src/module-elasticsuite-catalog-optimizer/Model/ResourceModel/Optimizer/Collection.php on lines 74..82

      There are no issues that match your filters.

      Category
      Status