Ejemplo n.º 1
0
 /**
  * @param string $entityType
  * @param int $identifier
  * @return int
  * @throws \Exception
  */
 public function delete($entityType, $identifier)
 {
     $metadata = $this->metadataPool->getMetadata($entityType);
     $sequenceInfo = $this->sequenceRegistry->retrieve($entityType);
     if (!isset($sequenceInfo['sequenceTable'])) {
         throw new \Exception('TODO: use correct Exception class' . PHP_EOL . ' Sequence table doesnt exists');
     }
     try {
         $connection = $this->appResource->getConnectionByName($metadata->getEntityConnectionName());
         return $connection->delete($this->appResource->getTableName($sequenceInfo['sequenceTable']), ['sequence_value = ?' => $identifier]);
     } catch (\Exception $e) {
         $this->logger->critical($e->getMessage(), $e->getTrace());
         throw new \Exception('TODO: use correct Exception class' . PHP_EOL . $e->getMessage());
     }
 }
Ejemplo n.º 2
0
 /**
  * Creates sequence instance
  *
  * @param string $entityType
  * @param array $config
  * @return SequenceInterface
  */
 public function create($entityType, $config)
 {
     if ($this->sequenceRegistry->retrieve($entityType) === false) {
         if (isset($config[$entityType]['sequence'])) {
             $this->sequenceRegistry->register($entityType, $config[$entityType]['sequence']);
         } elseif (isset($config[$entityType]['sequenceTable'])) {
             if (isset($config[$entityType]['connectionName'])) {
                 $connectionName = $config[$entityType]['connectionName'];
             } else {
                 $connectionName = 'default';
             }
             $this->sequenceRegistry->register($entityType, $this->objectManager->create($this->instanceName, ['connectionName' => $connectionName, 'sequenceTable' => $config[$entityType]['sequenceTable']]), $config[$entityType]['sequenceTable']);
         } else {
             $this->sequenceRegistry->register($entityType);
         }
     }
     return $this->sequenceRegistry->retrieve($entityType)['sequence'];
 }