diff --git a/api/composer.json b/api/composer.json index 8b0de83c1a..4af9ede36e 100644 --- a/api/composer.json +++ b/api/composer.json @@ -20,7 +20,7 @@ "composer/package-versions-deprecated": "1.11.99", "cweagans/composer-patches": "1.7.3", "doctrine/common": "3.5.0", - "doctrine/doctrine-bundle": "2.18.1", + "doctrine/doctrine-bundle": "3.0.0", "doctrine/doctrine-migrations-bundle": "3.6.0", "doctrine/orm": "3.5.3", "exercise/htmlpurifier-bundle": "5.1", diff --git a/api/composer.lock b/api/composer.lock index 196eacb287..5b8da8aee8 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a28785f190f90a6ec31e167cf957ec53", + "content-hash": "bea04e03a3c1beec6613df6744e71cda", "packages": [ { "name": "api-platform/doctrine-common", @@ -1876,50 +1876,45 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.18.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "b769877014de053da0e5cbbb63d0ea2f3b2fea76" + "reference": "112091bc3ed6b2b57b20a3d07b5d2a79d32017b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/b769877014de053da0e5cbbb63d0ea2f3b2fea76", - "reference": "b769877014de053da0e5cbbb63d0ea2f3b2fea76", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/112091bc3ed6b2b57b20a3d07b5d2a79d32017b9", + "reference": "112091bc3ed6b2b57b20a3d07b5d2a79d32017b9", "shasum": "" }, "require": { - "doctrine/dbal": "^3.7.0 || ^4.0", + "doctrine/dbal": "^4.0", "doctrine/deprecations": "^1.0", - "doctrine/persistence": "^3.1 || ^4", + "doctrine/persistence": "^4", "doctrine/sql-formatter": "^1.0.1", - "php": "^8.1", + "php": "^8.4", "symfony/cache": "^6.4 || ^7.0", "symfony/config": "^6.4 || ^7.0", "symfony/console": "^6.4 || ^7.0", "symfony/dependency-injection": "^6.4 || ^7.0", "symfony/doctrine-bridge": "^6.4.3 || ^7.0.3", "symfony/framework-bundle": "^6.4 || ^7.0", - "symfony/service-contracts": "^2.5 || ^3" + "symfony/service-contracts": "^3" }, "conflict": { - "doctrine/annotations": ">=3.0", - "doctrine/cache": "< 1.11", - "doctrine/orm": "<2.17 || >=4.0", + "doctrine/orm": "<3.0 || >=4.0", "symfony/var-exporter": "< 6.4.1 || 7.0.0", - "twig/twig": "<2.13 || >=3.0 <3.0.4" + "twig/twig": "<3.0.4" }, "require-dev": { - "doctrine/annotations": "^1 || ^2", - "doctrine/cache": "^1.11 || ^2.0", "doctrine/coding-standard": "^14", - "doctrine/orm": "^2.17 || ^3.1", - "friendsofphp/proxy-manager-lts": "^1.0", + "doctrine/orm": "^3.4.4", "phpstan/phpstan": "2.1.1", "phpstan/phpstan-phpunit": "2.0.3", "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^10.5.53 || ^12.3.10", - "psr/log": "^1.1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^12.3.10", + "psr/log": "^3.0", "symfony/doctrine-messenger": "^6.4 || ^7.0", "symfony/expression-language": "^6.4 || ^7.0", "symfony/messenger": "^6.4 || ^7.0", @@ -1932,7 +1927,7 @@ "symfony/var-exporter": "^6.4.1 || ^7.0.1", "symfony/web-profiler-bundle": "^6.4 || ^7.0", "symfony/yaml": "^6.4 || ^7.0", - "twig/twig": "^2.14.7 || ^3.0.4" + "twig/twig": "^3.21.1" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -1977,7 +1972,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.18.1" + "source": "https://github.com/doctrine/DoctrineBundle/tree/3.0.0" }, "funding": [ { @@ -1993,7 +1988,7 @@ "type": "tidelift" } ], - "time": "2025-11-05T14:42:10+00:00" + "time": "2025-10-11T10:48:07+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", diff --git a/api/config/packages/doctrine.yaml b/api/config/packages/doctrine.yaml index b14572ffaa..10e888d1ef 100644 --- a/api/config/packages/doctrine.yaml +++ b/api/config/packages/doctrine.yaml @@ -5,7 +5,6 @@ doctrine: # IMPORTANT: You MUST configure your server version, # either here or in the DATABASE_URL env var (see .env file) server_version: '15.0' - use_savepoints: true types: datetime: App\Types\Doctrine\UTCDateTimeType date: App\Types\Doctrine\UTCDateType @@ -13,13 +12,10 @@ doctrine: schema_filter: ~^(?!view_)~ orm: - auto_generate_proxy_classes: true - enable_lazy_ghost_objects: true naming_strategy: App\Util\CamelPascalNamingStrategy identity_generation_preferences: Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity auto_mapping: true - report_fields_where_declared: true validate_xml_mapping: false mappings: App: @@ -28,8 +24,6 @@ doctrine: dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' alias: App - controller_resolver: - auto_mapping: true schema_ignore_classes: - App\Entity\CampRootContentNode diff --git a/api/config/packages/prod/doctrine.yaml b/api/config/packages/prod/doctrine.yaml index 084f59a05d..eadbde29e7 100644 --- a/api/config/packages/prod/doctrine.yaml +++ b/api/config/packages/prod/doctrine.yaml @@ -1,6 +1,5 @@ doctrine: orm: - auto_generate_proxy_classes: false metadata_cache_driver: type: pool pool: doctrine.system_cache_pool diff --git a/api/src/Repository/ActivityRepository.php b/api/src/Repository/ActivityRepository.php index 5485576866..d753fe863d 100644 --- a/api/src/Repository/ActivityRepository.php +++ b/api/src/Repository/ActivityRepository.php @@ -14,6 +14,8 @@ * @method null|Activity findOneBy(array $criteria, array $orderBy = null) * @method Activity[] findAll() * @method Activity[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class ActivityRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/ActivityResponsibleRepository.php b/api/src/Repository/ActivityResponsibleRepository.php index 44a4cf1516..8dc6592f29 100644 --- a/api/src/Repository/ActivityResponsibleRepository.php +++ b/api/src/Repository/ActivityResponsibleRepository.php @@ -15,6 +15,8 @@ * @method null|ActivityResponsible findOneBy(array $criteria, array $orderBy = null) * @method ActivityResponsible[] findAll() * @method ActivityResponsible[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class ActivityResponsibleRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/CampCollaborationRepository.php b/api/src/Repository/CampCollaborationRepository.php index c31f2572ed..87f0928b7d 100644 --- a/api/src/Repository/CampCollaborationRepository.php +++ b/api/src/Repository/CampCollaborationRepository.php @@ -15,6 +15,8 @@ * @method null|CampCollaboration findOneBy(array $criteria, array $orderBy = null) * @method CampCollaboration[] findAll() * @method CampCollaboration[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class CampCollaborationRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/CampRepository.php b/api/src/Repository/CampRepository.php index ac44e07692..96b497c2d7 100644 --- a/api/src/Repository/CampRepository.php +++ b/api/src/Repository/CampRepository.php @@ -14,6 +14,8 @@ * @method null|Camp findOneBy(array $criteria, array $orderBy = null) * @method Camp[] findAll() * @method Camp[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class CampRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/CategoryRepository.php b/api/src/Repository/CategoryRepository.php index bbcf86e520..006290c414 100644 --- a/api/src/Repository/CategoryRepository.php +++ b/api/src/Repository/CategoryRepository.php @@ -14,6 +14,8 @@ * @method null|Category findOneBy(array $criteria, array $orderBy = null) * @method Category[] findAll() * @method Category[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class CategoryRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/ChecklistItemRepository.php b/api/src/Repository/ChecklistItemRepository.php index 1ea705272e..7a8e49eb68 100644 --- a/api/src/Repository/ChecklistItemRepository.php +++ b/api/src/Repository/ChecklistItemRepository.php @@ -17,6 +17,8 @@ * @method null|ChecklistItem findOneBy(array $criteria, array $orderBy = null) * @method ChecklistItem[] findAll() * @method ChecklistItem[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class ChecklistItemRepository extends ServiceEntityRepository implements CanFilterByUserInterface { public function __construct(ManagerRegistry $registry) { diff --git a/api/src/Repository/ChecklistRepository.php b/api/src/Repository/ChecklistRepository.php index 5d786131f8..a77ab388f6 100644 --- a/api/src/Repository/ChecklistRepository.php +++ b/api/src/Repository/ChecklistRepository.php @@ -15,6 +15,8 @@ * @method null|Checklist findOneBy(array $criteria, array $orderBy = null) * @method Checklist[] findAll() * @method Checklist[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class ChecklistRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/CommentRepository.php b/api/src/Repository/CommentRepository.php index 1456488c99..c9bd970bb0 100644 --- a/api/src/Repository/CommentRepository.php +++ b/api/src/Repository/CommentRepository.php @@ -15,6 +15,8 @@ * @method null|Comment findOneBy(array $criteria, array $orderBy = null) * @method Comment[] findAll() * @method Comment[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class CommentRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/DayRepository.php b/api/src/Repository/DayRepository.php index b364fd7397..4f149a8ae6 100644 --- a/api/src/Repository/DayRepository.php +++ b/api/src/Repository/DayRepository.php @@ -15,6 +15,8 @@ * @method null|Day findOneBy(array $criteria, array $orderBy = null) * @method Day[] findAll() * @method Day[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class DayRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/DayResponsibleRepository.php b/api/src/Repository/DayResponsibleRepository.php index 905411bb8c..0a27dcb7f7 100644 --- a/api/src/Repository/DayResponsibleRepository.php +++ b/api/src/Repository/DayResponsibleRepository.php @@ -15,6 +15,8 @@ * @method null|DayResponsible findOneBy(array $criteria, array $orderBy = null) * @method DayResponsible[] findAll() * @method DayResponsible[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class DayResponsibleRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/MaterialItemRepository.php b/api/src/Repository/MaterialItemRepository.php index ae6a4c514f..7d5c0a2ff5 100644 --- a/api/src/Repository/MaterialItemRepository.php +++ b/api/src/Repository/MaterialItemRepository.php @@ -14,6 +14,8 @@ * @method null|MaterialItem findOneBy(array $criteria, array $orderBy = null) * @method MaterialItem[] findAll() * @method MaterialItem[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class MaterialItemRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/MaterialListRepository.php b/api/src/Repository/MaterialListRepository.php index 414672297c..2920ddb94c 100644 --- a/api/src/Repository/MaterialListRepository.php +++ b/api/src/Repository/MaterialListRepository.php @@ -14,6 +14,8 @@ * @method null|MaterialList findOneBy(array $criteria, array $orderBy = null) * @method MaterialList[] findAll() * @method MaterialList[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class MaterialListRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/OAuthStateRepository.php b/api/src/Repository/OAuthStateRepository.php index e008abbb59..c3eede83ee 100644 --- a/api/src/Repository/OAuthStateRepository.php +++ b/api/src/Repository/OAuthStateRepository.php @@ -13,6 +13,8 @@ * @method null|OAuthState findOneBy(array $criteria, array $orderBy = null) * @method OAuthState[] findAll() * @method OAuthState[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class OAuthStateRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { diff --git a/api/src/Repository/PeriodRepository.php b/api/src/Repository/PeriodRepository.php index da3738f739..a8f9a6f966 100644 --- a/api/src/Repository/PeriodRepository.php +++ b/api/src/Repository/PeriodRepository.php @@ -14,6 +14,8 @@ * @method null|Period findOneBy(array $criteria, array $orderBy = null) * @method Period[] findAll() * @method Period[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class PeriodRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/ProfileRepository.php b/api/src/Repository/ProfileRepository.php index f0733de9bd..a7e6863736 100644 --- a/api/src/Repository/ProfileRepository.php +++ b/api/src/Repository/ProfileRepository.php @@ -16,6 +16,8 @@ * @method null|Profile findOneBy(array $criteria, array $orderBy = null) * @method Profile[] findAll() * @method Profile[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class ProfileRepository extends ServiceEntityRepository implements CanFilterByUserInterface { public function __construct(ManagerRegistry $registry) { diff --git a/api/src/Repository/ScheduleEntryRepository.php b/api/src/Repository/ScheduleEntryRepository.php index 87a87195e2..0e049f2c17 100644 --- a/api/src/Repository/ScheduleEntryRepository.php +++ b/api/src/Repository/ScheduleEntryRepository.php @@ -15,6 +15,8 @@ * @method null|ScheduleEntry findOneBy(array $criteria, array $orderBy = null) * @method ScheduleEntry[] findAll() * @method ScheduleEntry[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class ScheduleEntryRepository extends ServiceEntityRepository implements CanFilterByUserInterface { use FiltersByCampCollaboration; diff --git a/api/src/Repository/UserRepository.php b/api/src/Repository/UserRepository.php index 72fd1ff80b..471b9198e0 100644 --- a/api/src/Repository/UserRepository.php +++ b/api/src/Repository/UserRepository.php @@ -17,6 +17,8 @@ * @method null|User findOneBy(array $criteria, array $orderBy = null) * @method User[] findAll() * @method User[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + * + * @template-extends ServiceEntityRepository */ class UserRepository extends ServiceEntityRepository implements PasswordUpgraderInterface, UserLoaderInterface { public function __construct(ManagerRegistry $registry) {