private function updateFtpSettings(EntityManager $em) { $offset = 0; $perBatch = 100; do { $builder = $em->getConnection()->createQueryBuilder(); $sql = $builder->select('u.usr_id', 'u.activeFTP', 'u.addrFTP', 'u.loginFTP', 'u.retryFTP', 'u.passifFTP', 'u.pwdFTP', 'u.destFTP', 'u.prefixFTPfolder')->from('usr', 'u')->where($builder->expr()->notLike('u.usr_login', $builder->expr()->literal('(#deleted_%')), $builder->expr()->eq('u.model_of', 0), $builder->expr()->neq('u.addrFTP', $builder->expr()->literal('')))->setFirstResult($offset)->setMaxResults($perBatch)->getSQL(); $rs = $em->getConnection()->fetchAll($sql); foreach ($rs as $row) { try { $user = $em->createQuery('SELECT PARTIAL u.{id} FROM Phraseanet:User u WHERE u.id = :id')->setParameters(['id' => $row['usr_id']])->setHint(Query::HINT_FORCE_PARTIAL_LOAD, true)->getSingleResult(); } catch (NoResultException $e) { continue; } $credential = new FtpCredential(); $credential->setActive($row['activeFTP']); $credential->setAddress($row['addrFTP']); $credential->setLogin($row['loginFTP']); $credential->setMaxRetry((int) $row['retryFTP']); $credential->setPassive($row['passifFTP']); $credential->setPassword($row['pwdFTP']); $credential->setReceptionFolder($row['destFTP']); $credential->setRepositoryPrefixName($row['prefixFTPfolder']); $credential->setUser($user); $em->persist($credential); } $em->flush(); $em->clear(); $offset += $perBatch; } while (count($rs) > 0); return true; }
private function updateFtpSettings(EntityManager $em) { $offset = 0; $perBatch = 100; do { $sql = 'SELECT usr_id, activeFTP, addrFTP, loginFTP, retryFTP, passifFTP, pwdFTP, destFTP, prefixFTPfolder FROM usr WHERE usr_login NOT LIKE "(#deleted_%" AND model_of = 0 AND addrFTP != ""' . sprintf(' LIMIT %d, %d', $offset, $perBatch); $rs = $em->getConnection()->fetchAll($sql); foreach ($rs as $row) { try { $user = $em->createQuery('SELECT PARTIAL u.{id} FROM Phraseanet:User u WHERE u.id = :id')->setParameters(['id' => $row['usr_id']])->setHint(Query::HINT_FORCE_PARTIAL_LOAD, true)->getSingleResult(); } catch (NoResultException $e) { continue; } $credential = new FtpCredential(); $credential->setActive($row['activeFTP']); $credential->setAddress($row['addrFTP']); $credential->setLogin($row['loginFTP']); $credential->setMaxRetry((int) $row['retryFTP']); $credential->setPassive($row['passifFTP']); $credential->setPassword($row['pwdFTP']); $credential->setReceptionFolder($row['destFTP']); $credential->setRepositoryPrefixName($row['prefixFTPfolder']); $credential->setUser($user); $em->persist($credential); } $em->flush(); $em->clear(); $offset += $perBatch; } while (count($rs) > 0); return true; }
/** * {@inheritDoc} */ public function setMaxRetry($maxRetry) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setMaxRetry', array($maxRetry)); return parent::setMaxRetry($maxRetry); }