Skip to content

Commit 87dee24

Browse files
committed
Fix doctrine deprecation warnings
1 parent 41d1a0b commit 87dee24

File tree

4 files changed

+34
-21
lines changed

4 files changed

+34
-21
lines changed

phpunit.xml.dist

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
32
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
43
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5-
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
4+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.4/phpunit.xsd"
65
colors="true"
76
bootstrap="tests/bootstrap.php"
87
>
98
<php>
10-
<ini name="display_errors" value="1" />
11-
<ini name="error_reporting" value="-1" />
12-
<server name="APP_ENV" value="test" force="true" />
13-
<server name="SHELL_VERBOSITY" value="-1" />
9+
<ini name="display_errors" value="1"/>
10+
<ini name="error_reporting" value="-1"/>
11+
<server name="APP_ENV" value="test" force="true"/>
12+
<server name="SHELL_VERBOSITY" value="-1"/>
1413
</php>
15-
1614
<testsuites>
1715
<testsuite name="Project Test Suite">
1816
<directory>tests</directory>
1917
</testsuite>
2018
</testsuites>
21-
22-
<coverage>
19+
<coverage/>
20+
<source>
2321
<include>
2422
<directory suffix=".php">src</directory>
2523
</include>
26-
</coverage>
27-
24+
</source>
2825
</phpunit>

src/Entity/PackageRepository.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ public function getTotal(): int
563563
$sql,
564564
[],
565565
[],
566-
new QueryCacheProfile(86400, 'total_packages', $this->getEntityManager()->getConfiguration()->getResultCacheImpl())
566+
new QueryCacheProfile(86400, 'total_packages', $this->getEntityManager()->getConfiguration()->getResultCache())
567567
);
568568
$result = $stmt->fetchAllAssociative();
569569
$stmt->free();
@@ -583,7 +583,7 @@ public function getCountByYearMonth(): array
583583
$sql,
584584
[],
585585
[],
586-
new QueryCacheProfile(3600, 'package_count_by_year_month', $this->getEntityManager()->getConfiguration()->getResultCacheImpl())
586+
new QueryCacheProfile(3600, 'package_count_by_year_month', $this->getEntityManager()->getConfiguration()->getResultCache())
587587
);
588588
$result = $stmt->fetchAllAssociative();
589589
$stmt->free();

src/Entity/VersionRepository.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public function getTotal(): int
261261
$sql,
262262
[],
263263
[],
264-
new QueryCacheProfile(86400, 'total_package_versions', $this->getEntityManager()->getConfiguration()->getResultCacheImpl())
264+
new QueryCacheProfile(86400, 'total_package_versions', $this->getEntityManager()->getConfiguration()->getResultCache())
265265
);
266266
$result = $stmt->fetchAllAssociative();
267267
$stmt->free();
@@ -281,7 +281,7 @@ public function getCountByYearMonth(): array
281281
$sql,
282282
[],
283283
[],
284-
new QueryCacheProfile(3600, 'package_versions_count_by_year_month', $this->getEntityManager()->getConfiguration()->getResultCacheImpl())
284+
new QueryCacheProfile(3600, 'package_versions_count_by_year_month', $this->getEntityManager()->getConfiguration()->getResultCache())
285285
);
286286
$result = $stmt->fetchAllAssociative();
287287
$stmt->free();

src/EventListener/PackageListener.php

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
use App\Entity\User;
1818
use App\Util\DoctrineTrait;
1919
use Doctrine\Bundle\DoctrineBundle\Attribute\AsEntityListener;
20+
use Doctrine\DBAL\Types\Types;
2021
use Doctrine\ORM\EntityManager;
2122
use Doctrine\Persistence\Event\LifecycleEventArgs;
2223
use Doctrine\ORM\Event\PreUpdateEventArgs;
2324
use Doctrine\Persistence\ManagerRegistry;
25+
use Symfony\Bridge\Doctrine\Types\UlidType;
2426
use Symfony\Bundle\SecurityBundle\Security;
2527

2628
#[AsEntityListener(event: 'postPersist', entity: Package::class)]
@@ -45,9 +47,7 @@ public function __construct(
4547
*/
4648
public function postPersist(Package $package, LifecycleEventArgs $event): void
4749
{
48-
$record = AuditRecord::packageCreated($package, $this->getUser());
49-
$this->getEM()->persist($record);
50-
$this->getEM()->flush();
50+
$this->insert(AuditRecord::packageCreated($package, $this->getUser()));
5151
}
5252

5353
/**
@@ -63,7 +63,7 @@ public function preRemove(Package $package, LifecycleEventArgs $event): void
6363
public function preUpdate(Package $package, PreUpdateEventArgs $event): void
6464
{
6565
if ($event->hasChangedField('repository')) {
66-
// buffering things to be flushed in postUpdate as flushing here results in an infinite loop
66+
// buffering things to be inserted in postUpdate once we can confirm it is done
6767
$this->buffered[] = AuditRecord::canonicalUrlChange($package, $this->getUser(), $event->getOldValue('repository'));
6868
}
6969
}
@@ -75,9 +75,8 @@ public function postUpdate(Package $package, LifecycleEventArgs $event): void
7575
{
7676
if ($this->buffered) {
7777
foreach ($this->buffered as $record) {
78-
$this->getEM()->persist($record);
78+
$this->insert($record);
7979
}
80-
$this->getEM()->flush();
8180
$this->buffered = [];
8281
}
8382
}
@@ -88,4 +87,21 @@ private function getUser(): User|null
8887

8988
return $user instanceof User ? $user : null;
9089
}
90+
91+
private function insert(AuditRecord $record): void
92+
{
93+
$this->getEM()->getConnection()->insert('audit_log', [
94+
'id' => $record->id,
95+
'datetime' => $record->datetime,
96+
'type' => $record->type->value,
97+
'attributes' => $record->attributes,
98+
'userId' => $record->userId,
99+
'vendor' => $record->vendor,
100+
'packageId' => $record->packageId,
101+
], [
102+
'id' => UlidType::NAME,
103+
'datetime' => Types::DATETIME_IMMUTABLE,
104+
'attributes' => Types::JSON
105+
]);
106+
}
91107
}

0 commit comments

Comments
 (0)