public function migrate() { //busca o ultimo registro das OPs $op = new Op(); $num = $op->lastNum(); //verifica se essa OP está na lista $keys = array_keys($this->aOPs); if (!array_key_exists($num, $this->aOPs)) { $last = $keys[count($keys) - 1]; if ($last <= $num) { return false; } //existem OPs maiores, mas não essa registrada na tabela //acretita-se nesse caso que o numero foi pulado //então recuar um a um até que o numero da chave seja //menor que o numero da OP //x+1 mostra o ponto de corte for ($x = count($keys) - 1; $x = 0; $x--) { if ($key[$x] <= $num) { break; } } } else { $x = array_search($num, $keys); } //aqui estão as ops da lista que ainda não estão da tabela $aOps = array_slice($this->aOPs, $x + 1); foreach ($aOps as $data) { $aData = $this->extract($data); $op->set($aData); $op->save(); } }
<?php ini_set("display_errors", 1); error_reporting(E_ALL); require_once '../bootstrap.php'; use Webetiq\Op; $op = new Op(); $lnum = $op->lastNum();