1 Commits

Author SHA1 Message Date
858aa36773 Make all entity classes final 2025-10-21 22:13:08 +02:00
12 changed files with 71 additions and 68 deletions

117
composer.lock generated
View File

@@ -164,16 +164,16 @@
},
{
"name": "doctrine/collections",
"version": "2.4.0",
"version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
"reference": "9acfeea2e8666536edff3d77c531261c63680160"
"reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/9acfeea2e8666536edff3d77c531261c63680160",
"reference": "9acfeea2e8666536edff3d77c531261c63680160",
"url": "https://api.github.com/repos/doctrine/collections/zipball/2eb07e5953eed811ce1b309a7478a3b236f2273d",
"reference": "2eb07e5953eed811ce1b309a7478a3b236f2273d",
"shasum": ""
},
"require": {
@@ -182,11 +182,11 @@
"symfony/polyfill-php84": "^1.30"
},
"require-dev": {
"doctrine/coding-standard": "^14",
"doctrine/coding-standard": "^12",
"ext-json": "*",
"phpstan/phpstan": "^2.1.30",
"phpstan/phpstan-phpunit": "^2.0.7",
"phpunit/phpunit": "^10.5.58 || ^11.5.42 || ^12.4"
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.0",
"phpunit/phpunit": "^10.5"
},
"type": "library",
"autoload": {
@@ -230,7 +230,7 @@
],
"support": {
"issues": "https://github.com/doctrine/collections/issues",
"source": "https://github.com/doctrine/collections/tree/2.4.0"
"source": "https://github.com/doctrine/collections/tree/2.3.0"
},
"funding": [
{
@@ -246,7 +246,7 @@
"type": "tidelift"
}
],
"time": "2025-10-25T09:18:13+00:00"
"time": "2025-03-22T10:17:19+00:00"
},
{
"name": "doctrine/dbal",
@@ -1036,16 +1036,16 @@
},
{
"name": "doctrine/orm",
"version": "3.5.3",
"version": "3.5.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
"reference": "1220edf9535303feb6dbfcf171beeef842fc9e1c"
"reference": "5a541b8b3a327ab1ea5f93b1615b4ff67a34e109"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/1220edf9535303feb6dbfcf171beeef842fc9e1c",
"reference": "1220edf9535303feb6dbfcf171beeef842fc9e1c",
"url": "https://api.github.com/repos/doctrine/orm/zipball/5a541b8b3a327ab1ea5f93b1615b4ff67a34e109",
"reference": "5a541b8b3a327ab1ea5f93b1615b4ff67a34e109",
"shasum": ""
},
"require": {
@@ -1065,14 +1065,15 @@
"symfony/var-exporter": "^6.3.9 || ^7.0"
},
"require-dev": {
"doctrine/coding-standard": "^14.0",
"doctrine/coding-standard": "^13.0",
"phpbench/phpbench": "^1.0",
"phpdocumentor/guides-cli": "^1.4",
"phpstan/extension-installer": "^1.4",
"phpstan/phpstan": "2.1.22",
"phpstan/phpstan": "2.0.3",
"phpstan/phpstan-deprecation-rules": "^2",
"phpunit/phpunit": "^10.5.0 || ^11.5",
"phpunit/phpunit": "^10.4.0",
"psr/log": "^1 || ^2 || ^3",
"squizlabs/php_codesniffer": "3.12.0",
"symfony/cache": "^5.4 || ^6.2 || ^7.0"
},
"suggest": {
@@ -1119,9 +1120,9 @@
],
"support": {
"issues": "https://github.com/doctrine/orm/issues",
"source": "https://github.com/doctrine/orm/tree/3.5.3"
"source": "https://github.com/doctrine/orm/tree/3.5.2"
},
"time": "2025-10-27T22:06:52+00:00"
"time": "2025-08-08T17:00:40+00:00"
},
{
"name": "doctrine/persistence",
@@ -1960,16 +1961,16 @@
},
{
"name": "phpoffice/phpspreadsheet",
"version": "5.2.0",
"version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
"reference": "3b8994b3aac4b61018bc04fc8c441f4fd68c18eb"
"reference": "fd26e45a814e94ae2aad0df757d9d1739c4bf2e0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/3b8994b3aac4b61018bc04fc8c441f4fd68c18eb",
"reference": "3b8994b3aac4b61018bc04fc8c441f4fd68c18eb",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fd26e45a814e94ae2aad0df757d9d1739c4bf2e0",
"reference": "fd26e45a814e94ae2aad0df757d9d1739c4bf2e0",
"shasum": ""
},
"require": {
@@ -1999,7 +2000,7 @@
"dealerdirect/phpcodesniffer-composer-installer": "dev-main",
"dompdf/dompdf": "^2.0 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.2",
"mitoteam/jpgraph": "^10.5",
"mitoteam/jpgraph": "^10.3",
"mpdf/mpdf": "^8.1.1",
"phpcompatibility/php-compatibility": "^9.3",
"phpstan/phpstan": "^1.1 || ^2.0",
@@ -2011,7 +2012,7 @@
},
"suggest": {
"dompdf/dompdf": "Option for rendering PDF with PDF Writer",
"ext-intl": "PHP Internationalization Functions, regquired for NumberFormat Wizard",
"ext-intl": "PHP Internationalization Functions",
"mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
"mpdf/mpdf": "Option for rendering PDF with PDF Writer",
"tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer"
@@ -2060,9 +2061,9 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.2.0"
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.1.0"
},
"time": "2025-10-26T15:54:22+00:00"
"time": "2025-09-04T05:34:49+00:00"
},
{
"name": "phpstan/phpdoc-parser",
@@ -6811,16 +6812,16 @@
},
{
"name": "symfony/stimulus-bundle",
"version": "v2.31.0",
"version": "v2.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stimulus-bundle.git",
"reference": "c5ea8ee2ccd45447b7f4b6b82f704ee5e76127f0"
"reference": "668b9efe9d0ab8b4e50091263171609e0459c0c8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/c5ea8ee2ccd45447b7f4b6b82f704ee5e76127f0",
"reference": "c5ea8ee2ccd45447b7f4b6b82f704ee5e76127f0",
"url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/668b9efe9d0ab8b4e50091263171609e0459c0c8",
"reference": "668b9efe9d0ab8b4e50091263171609e0459c0c8",
"shasum": ""
},
"require": {
@@ -6860,7 +6861,7 @@
"symfony-ux"
],
"support": {
"source": "https://github.com/symfony/stimulus-bundle/tree/v2.31.0"
"source": "https://github.com/symfony/stimulus-bundle/tree/v2.30.0"
},
"funding": [
{
@@ -6880,7 +6881,7 @@
"type": "tidelift"
}
],
"time": "2025-09-24T13:27:42+00:00"
"time": "2025-08-27T15:25:48+00:00"
},
{
"name": "symfony/stopwatch",
@@ -7574,16 +7575,16 @@
},
{
"name": "symfony/ux-turbo",
"version": "v2.31.0",
"version": "v2.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/ux-turbo.git",
"reference": "06d5e4cf4573efe4faf648f3810a28c63684c706"
"reference": "c5e88c7e16713e84a2a35f36276ccdb05c2c78d8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/ux-turbo/zipball/06d5e4cf4573efe4faf648f3810a28c63684c706",
"reference": "06d5e4cf4573efe4faf648f3810a28c63684c706",
"url": "https://api.github.com/repos/symfony/ux-turbo/zipball/c5e88c7e16713e84a2a35f36276ccdb05c2c78d8",
"reference": "c5e88c7e16713e84a2a35f36276ccdb05c2c78d8",
"shasum": ""
},
"require": {
@@ -7596,7 +7597,7 @@
"require-dev": {
"dbrekelmans/bdi": "dev-main",
"doctrine/doctrine-bundle": "^2.4.3",
"doctrine/orm": "^2.8|^3.0",
"doctrine/orm": "^2.8 | 3.0",
"php-webdriver/webdriver": "^1.15",
"phpstan/phpstan": "^2.1.17",
"symfony/asset-mapper": "^6.4|^7.0|^8.0",
@@ -7653,7 +7654,7 @@
"turbo-stream"
],
"support": {
"source": "https://github.com/symfony/ux-turbo/tree/v2.31.0"
"source": "https://github.com/symfony/ux-turbo/tree/v2.30.0"
},
"funding": [
{
@@ -7673,20 +7674,20 @@
"type": "tidelift"
}
],
"time": "2025-10-16T07:24:06+00:00"
"time": "2025-08-27T15:25:48+00:00"
},
{
"name": "symfony/validator",
"version": "v7.3.5",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
"reference": "724086992fb7c7882d05c9d2219d70401ab9fdda"
"reference": "5e29a348b5fac2227b6938a54db006d673bb813a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/validator/zipball/724086992fb7c7882d05c9d2219d70401ab9fdda",
"reference": "724086992fb7c7882d05c9d2219d70401ab9fdda",
"url": "https://api.github.com/repos/symfony/validator/zipball/5e29a348b5fac2227b6938a54db006d673bb813a",
"reference": "5e29a348b5fac2227b6938a54db006d673bb813a",
"shasum": ""
},
"require": {
@@ -7755,7 +7756,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/validator/tree/v7.3.5"
"source": "https://github.com/symfony/validator/tree/v7.3.4"
},
"funding": [
{
@@ -7775,7 +7776,7 @@
"type": "tidelift"
}
],
"time": "2025-10-24T14:27:20+00:00"
"time": "2025-09-24T06:32:27+00:00"
},
{
"name": "symfony/var-dumper",
@@ -8946,16 +8947,16 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v3.89.1",
"version": "v3.89.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "f34967da2866ace090a2b447de1f357356474573"
"reference": "4dd6768cb7558440d27d18f54909eee417317ce9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/f34967da2866ace090a2b447de1f357356474573",
"reference": "f34967da2866ace090a2b447de1f357356474573",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/4dd6768cb7558440d27d18f54909eee417317ce9",
"reference": "4dd6768cb7558440d27d18f54909eee417317ce9",
"shasum": ""
},
"require": {
@@ -9037,7 +9038,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.1"
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.0"
},
"funding": [
{
@@ -9045,7 +9046,7 @@
"type": "github"
}
],
"time": "2025-10-24T12:05:10+00:00"
"time": "2025-10-18T19:30:16+00:00"
},
{
"name": "masterminds/html5",
@@ -10615,16 +10616,16 @@
},
{
"name": "rector/rector",
"version": "2.2.6",
"version": "2.2.3",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
"reference": "5c5bbc956b9a056a26cb593379253104b7ed9c2d"
"reference": "d27f976a332a87b5d03553c2e6f04adbe5da034f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/5c5bbc956b9a056a26cb593379253104b7ed9c2d",
"reference": "5c5bbc956b9a056a26cb593379253104b7ed9c2d",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/d27f976a332a87b5d03553c2e6f04adbe5da034f",
"reference": "d27f976a332a87b5d03553c2e6f04adbe5da034f",
"shasum": ""
},
"require": {
@@ -10663,7 +10664,7 @@
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.2.6"
"source": "https://github.com/rectorphp/rector/tree/2.2.3"
},
"funding": [
{
@@ -10671,7 +10672,7 @@
"type": "github"
}
],
"time": "2025-10-27T11:35:56+00:00"
"time": "2025-10-11T21:50:23+00:00"
},
{
"name": "roave/security-advisories",

View File

@@ -42,6 +42,8 @@ when@test:
when@prod:
doctrine:
orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool

View File

@@ -13,7 +13,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\AnswerRepository;
#[ORM\Entity(repositoryClass: AnswerRepository::class)]
class Answer
final class Answer
{
#[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -14,7 +14,7 @@ use Tvdt\Repository\CandidateRepository;
#[ORM\Entity(repositoryClass: CandidateRepository::class)]
#[ORM\UniqueConstraint(fields: ['name', 'season'])]
class Candidate
final class Candidate
{
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -14,7 +14,7 @@ use Tvdt\Repository\EliminationRepository;
#[ORM\Entity(repositoryClass: EliminationRepository::class)]
#[ORM\HasLifecycleCallbacks]
class Elimination
final class Elimination
{
public const string SCREEN_GREEN = 'green';

View File

@@ -13,7 +13,7 @@ use Tvdt\Repository\GivenAnswerRepository;
#[ORM\Entity(repositoryClass: GivenAnswerRepository::class)]
#[ORM\HasLifecycleCallbacks]
class GivenAnswer
final class GivenAnswer
{
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -13,7 +13,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\QuestionRepository;
#[ORM\Entity(repositoryClass: QuestionRepository::class)]
class Question
final class Question
{
#[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -13,7 +13,7 @@ use Tvdt\Repository\QuizRepository;
#[ORM\Entity(repositoryClass: QuizRepository::class)]
#[ORM\UniqueConstraint(fields: ['name', 'season'])]
class Quiz
final class Quiz
{
#[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -14,7 +14,7 @@ use Tvdt\Repository\QuizCandidateRepository;
#[ORM\Entity(repositoryClass: QuizCandidateRepository::class)]
#[ORM\HasLifecycleCallbacks]
#[ORM\UniqueConstraint(columns: ['candidate_id', 'quiz_id'])]
class QuizCandidate
final class QuizCandidate
{
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -12,7 +12,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\SeasonRepository;
#[ORM\Entity(repositoryClass: SeasonRepository::class)]
class Season
final class Season
{
private const string SEASON_CODE_CHARACTERS = 'bcdfghjklmnpqrstvwxz';

View File

@@ -11,7 +11,7 @@ use Symfony\Component\Uid\Uuid;
use Tvdt\Repository\SeasonSettingsRepository;
#[ORM\Entity(repositoryClass: SeasonSettingsRepository::class)]
class SeasonSettings
final class SeasonSettings
{
#[ORM\Column(type: UuidType::NAME)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]

View File

@@ -19,7 +19,7 @@ use Tvdt\Repository\UserRepository;
#[ORM\Table(name: '`user`')]
#[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_EMAIL', fields: ['email'])]
#[UniqueEntity(fields: ['email'], message: 'There is already an account with this email')]
class User implements UserInterface, PasswordAuthenticatedUserInterface
final class User implements UserInterface, PasswordAuthenticatedUserInterface
{
#[ORM\Column(type: UuidType::NAME, unique: true)]
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]