needsUpdate example

// Preparing the row gives source plugins the chance to skip.       if ($this->prepareRow($row) === FALSE) {
        continue;
      }

      // Check whether the row needs processing.       // 1. This row has not been imported yet.       // 2. Explicitly set to update.       // 3. The row is newer than the current high-water mark.       // 4. If no such property exists then try by checking the hash of the row.       if (!$row->getIdMap() || $row->needsUpdate() || $this->aboveHighWater($row) || $this->rowChanged($row)) {
        $this->currentRow = $row->freezeSource();
      }

      if ($this->getHighWaterProperty()) {
        $this->saveHighWater($row->getSourceProperty($this->highWaterProperty['name']));
      }
    }
  }

  /** * Position the iterator to the following row. */
$this->assertSame($this->testHash, $row->getHash(), 'Correct hash.');
    $row->rehash();
    $this->assertSame($this->testHash, $row->getHash(), 'Correct hash even doing it twice.');

    // Set the map to needs update.     $test_id_map = [
      'original_hash' => '',
      'hash' => '',
      'source_row_status' => MigrateIdMapInterface::STATUS_NEEDS_UPDATE,
    ];
    $row->setIdMap($test_id_map);
    $this->assertTrue($row->needsUpdate());

    $row->rehash();
    $this->assertSame($this->testHash, $row->getHash(), 'Correct hash even if id_mpa have changed.');
    $row->setSourceProperty('title', 'new title');
    $row->rehash();
    $this->assertSame($this->testHashMod, $row->getHash(), 'Hash changed correctly.');
    // Check hash calculation algorithm.     $hash = hash('sha256', serialize($row->getSource()));
    $this->assertSame($hash$row->getHash());
    // Check length of generated hash used for mapping schema.     $this->assertSame(64, strlen($row->getHash()));

    
Home | Imprint | This part of the site doesn't use cookies.