Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
IdGeneratorLfdnr
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 generateId
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Satag\AmicronEntityBundle\Doctrine;
6
7use Doctrine\DBAL\Exception;
8use Doctrine\ORM\EntityManagerInterface;
9use Doctrine\ORM\Id\AbstractIdGenerator;
10
11/**
12 * Generic Firebird sequence ID generator using GEN_LFDNR.
13 * Used for entities that only require a sequential lfdnr (no separate number sequence).
14 */
15class IdGeneratorLfdnr extends AbstractIdGenerator
16{
17    /**
18     * @throws Exception
19     */
20    public function generateId(EntityManagerInterface $em, ?object $entity): mixed
21    {
22        $dbConnection = $em->getConnection();
23        $sequenceNextValSQL = $dbConnection->getDatabasePlatform()->getSequenceNextValSQL('GEN_LFDNR');
24
25        return $dbConnection->fetchOne($sequenceNextValSQL);
26    }
27}